!(function () {
  function s(n) {
    var r = Object.create(null);
    return function (e) {
      var t = c(e) ? e : JSON.stringify(e);
      return r[t] || (r[t] = n(e));
    };
  }
  var o = s(function (e) {
      return e.replace(/([A-Z])/g, function (e) {
        return '-' + e.toLowerCase();
      });
    }),
    l = Object.prototype.hasOwnProperty,
    y =
      Object.assign ||
      function (e) {
        for (var t = arguments, n = 1; n < arguments.length; n++) {
          var r,
            i = Object(t[n]);
          for (r in i) l.call(i, r) && (e[r] = i[r]);
        }
        return e;
      };
  function c(e) {
    return 'string' == typeof e || 'number' == typeof e;
  }
  function u() {}
  function r(e) {
    return 'function' == typeof e;
  }
  function p(e) {
    e = e.match(/^([^:/?#]+:)?(?:\/{2,}([^/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/);
    return (
      ('string' == typeof e[1] && 0 < e[1].length && e[1].toLowerCase() !== location.protocol) ||
      ('string' == typeof e[2] &&
        0 < e[2].length &&
        e[2].replace(new RegExp(':(' + {'http:': 80, 'https:': 443}[location.protocol] + ')?$'), '') !== location.host)
    );
  }
  var h = document.body.clientWidth <= 600,
    i =
      window.history &&
      window.history.pushState &&
      window.history.replaceState &&
      !navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),
    n = {};
  function d(e, t) {
    if ((void 0 === t && (t = !1), 'string' == typeof e)) {
      if (void 0 !== window.Vue) return b(e);
      e = t ? b(e) : n[e] || (n[e] = b(e));
    }
    return e;
  }
  var f = document,
    g = f.body,
    m = f.head;
  function b(e, t) {
    return t ? e.querySelector(t) : f.querySelector(e);
  }
  function k(e, t) {
    return [].slice.call(t ? e.querySelectorAll(t) : f.querySelectorAll(e));
  }
  function v(e, t) {
    return (e = f.createElement(e)), t && (e.innerHTML = t), e;
  }
  function a(e, t) {
    return e.appendChild(t);
  }
  function w(e, t) {
    return e.insertBefore(t, e.children[0]);
  }
  function x(e, t, n) {
    r(t) ? window.addEventListener(e, t) : e.addEventListener(t, n);
  }
  function _(e, t, n) {
    r(t) ? window.removeEventListener(e, t) : e.removeEventListener(t, n);
  }
  function S(e, t, n) {
    e && e.classList[n ? t : 'toggle'](n || t);
  }
  function e(e, t) {
    void 0 === t && (t = document);
    var n = t.readyState;
    if ('complete' === n || 'interactive' === n) return setTimeout(e, 0);
    t.addEventListener('DOMContentLoaded', e);
  }
  var t = Object.freeze({
      __proto__: null,
      getNode: d,
      $: f,
      body: g,
      head: m,
      find: b,
      findAll: k,
      create: v,
      appendTo: a,
      before: w,
      on: x,
      off: _,
      toggleClass: S,
      style: function (e) {
        a(m, v('style', e));
      },
      documentReady: e
    }),
    A = decodeURIComponent,
    T = encodeURIComponent;
  function E(e) {
    var t = {};
    return (
      (e = e.trim().replace(/^(\?|#|&)/, '')) &&
        e.split('&').forEach(function (e) {
          e = e.replace(/\+/g, ' ').split('=');
          t[e[0]] = e[1] && A(e[1]);
        }),
      t
    );
  }
  function R(e, t) {
    void 0 === t && (t = []);
    var n,
      r = [];
    for (n in e) -1 < t.indexOf(n) || r.push(e[n] ? (T(n) + '=' + T(e[n])).toLowerCase() : T(n));
    return r.length ? '?' + r.join('&') : '';
  }
  var O = s(function (e) {
      return /(:|(\/{2}))/g.test(e);
    }),
    $ = s(function (e) {
      return e.split(/[?#]/)[0];
    }),
    F = s(function (e) {
      if (/\/$/g.test(e)) return e;
      e = e.match(/(\S*\/)[^/]+$/);
      return e ? e[1] : '';
    }),
    C = s(function (e) {
      return e.replace(/^\/+/, '/').replace(/([^:])\/{2,}/g, '$1/');
    }),
    L = s(function (e) {
      for (var t = e.replace(/^\//, '').split('/'), n = [], r = 0, i = t.length; r < i; r++) {
        var o = t[r];
        '..' === o ? n.pop() : '.' !== o && n.push(o);
      }
      return '/' + n.join('/');
    });
  function z(e) {
    return e
      .split('/')
      .filter(function (e) {
        return -1 === e.indexOf('#');
      })
      .join('/');
  }
  function N() {
    for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
    return C(e.map(z).join('/'));
  }
  var M = s(function (e) {
    return e.replace('#', '?id=');
  });
  function D(e, t) {
    return -1 !== e.indexOf(t, e.length - t.length);
  }
  var P = {};
  var I = function (e) {
    this.config = e;
  };
  function j(e) {
    var t = location.href.indexOf('#');
    location.replace(location.href.slice(0, 0 <= t ? t : 0) + '#' + e);
  }
  (I.prototype.getBasePath = function () {
    return this.config.basePath;
  }),
    (I.prototype.getFile = function (e, t) {
      void 0 === e && (e = this.getCurrentPath());
      var n,
        r,
        i = this.config,
        o = this.getBasePath(),
        a = 'string' == typeof i.ext ? i.ext : '.md';
      return (
        (e = i.alias
          ? (function e(t, n, r) {
              var i = Object.keys(n).filter(function (e) {
                return (P[e] || (P[e] = new RegExp('^' + e + '$'))).test(t) && t !== r;
              })[0];
              return i ? e(t.replace(P[i], n[i]), n, t) : t;
            })(e, i.alias)
          : e),
        (n = e),
        (r = a),
        (e =
          ((e = new RegExp('\\.(' + r.replace(/^\./, '') + '|html)$', 'g').test(n)
            ? n
            : /\/$/g.test(n)
            ? n + 'README' + r
            : '' + n + r) ===
            '/README' + a &&
            i.homepage) ||
          e),
        (e = O(e) ? e : N(o, e)),
        t && (e = e.replace(new RegExp('^' + o), '')),
        e
      );
    }),
    (I.prototype.onchange = function (e) {
      void 0 === e && (e = u), e();
    }),
    (I.prototype.getCurrentPath = function () {}),
    (I.prototype.normalize = function () {}),
    (I.prototype.parse = function () {}),
    (I.prototype.toURL = function (e, t, n) {
      var r = n && '#' === e[0],
        i = this.parse(M(e));
      if (
        ((i.query = y({}, i.query, t)),
        (e = (e = i.path + R(i.query)).replace(/\.md(\?)|\.md$/, '$1')),
        r && (e = (0 < (r = n.indexOf('?')) ? n.substring(0, r) : n) + e),
        this.config.relativePath && 0 !== e.indexOf('/'))
      ) {
        n = n.substring(0, n.lastIndexOf('/') + 1);
        return C(L(n + e));
      }
      return C('/' + e);
    });
  var H = (function (r) {
      function e(e) {
        r.call(this, e), (this.mode = 'hash');
      }
      return (
        r && (e.__proto__ = r),
        (((e.prototype = Object.create(r && r.prototype)).constructor = e).prototype.getBasePath = function () {
          var e = window.location.pathname || '',
            t = this.config.basePath,
            e = D(e, '.html') ? e + '#/' + t : e + '/' + t;
          return /^(\/|https?:)/g.test(t) ? t : C(e);
        }),
        (e.prototype.getCurrentPath = function () {
          var e = location.href,
            t = e.indexOf('#');
          return -1 === t ? '' : e.slice(t + 1);
        }),
        (e.prototype.onchange = function (n) {
          void 0 === n && (n = u);
          var r = !1;
          x('click', function (e) {
            e = 'A' === e.target.tagName ? e.target : e.target.parentNode;
            e && 'A' === e.tagName && !/_blank/.test(e.target) && (r = !0);
          }),
            x('hashchange', function (e) {
              var t = r ? 'navigate' : 'history';
              (r = !1), n({event: e, source: t});
            });
        }),
        (e.prototype.normalize = function () {
          var e = this.getCurrentPath();
          if ('/' === (e = M(e)).charAt(0)) return j(e);
          j('/' + e);
        }),
        (e.prototype.parse = function (e) {
          void 0 === e && (e = location.href);
          var t = '',
            n = e.indexOf('#');
          0 <= n && (e = e.slice(n + 1));
          n = e.indexOf('?');
          return (
            0 <= n && ((t = e.slice(n + 1)), (e = e.slice(0, n))), {path: e, file: this.getFile(e, !0), query: E(t)}
          );
        }),
        (e.prototype.toURL = function (e, t, n) {
          return '#' + r.prototype.toURL.call(this, e, t, n);
        }),
        e
      );
    })(I),
    q = (function (t) {
      function e(e) {
        t.call(this, e), (this.mode = 'history');
      }
      return (
        t && (e.__proto__ = t),
        (((e.prototype = Object.create(t && t.prototype)).constructor = e).prototype.getCurrentPath = function () {
          var e = this.getBasePath(),
            t = window.location.pathname;
          return (
            e && 0 === t.indexOf(e) && (t = t.slice(e.length)),
            (t || '/') + window.location.search + window.location.hash
          );
        }),
        (e.prototype.onchange = function (n) {
          var r = this;
          void 0 === n && (n = u),
            x('click', function (e) {
              var t = 'A' === e.target.tagName ? e.target : e.target.parentNode;
              t &&
                'A' === t.tagName &&
                !/_blank/.test(t.target) &&
                (e.preventDefault(),
                (t = t.href),
                -1 !== r.config.crossOriginLinks.indexOf(t)
                  ? window.open(t, '_self')
                  : window.history.pushState({key: t}, '', t),
                n({event: e, source: 'navigate'}));
            }),
            x('popstate', function (e) {
              n({event: e, source: 'history'});
            });
        }),
        (e.prototype.parse = function (e) {
          void 0 === e && (e = location.href);
          var t = '',
            n = e.indexOf('?');
          0 <= n && ((t = e.slice(n + 1)), (e = e.slice(0, n)));
          var r = N(location.origin),
            n = e.indexOf(r);
          return -1 < n && (e = e.slice(n + r.length)), {path: e, file: this.getFile(e), query: E(t)};
        }),
        e
      );
    })(I),
    U = {};
  var B = /([^{]*?)\w(?=\})/g,
    Z = {
      YYYY: 'getFullYear',
      YY: 'getYear',
      MM: function (e) {
        return e.getMonth() + 1;
      },
      DD: 'getDate',
      HH: 'getHours',
      mm: 'getMinutes',
      ss: 'getSeconds',
      fff: 'getMilliseconds'
    };
  var G,
    W = Object.hasOwnProperty,
    V = Object.setPrototypeOf,
    Y = Object.isFrozen,
    X = Object.getPrototypeOf,
    K = Object.getOwnPropertyDescriptor,
    Fe = Object.freeze,
    Q = Object.seal,
    J = Object.create,
    ee = 'undefined' != typeof Reflect && Reflect,
    te =
      (te = ee.apply) ||
      function (e, t, n) {
        return e.apply(t, n);
      },
    Fe =
      Fe ||
      function (e) {
        return e;
      },
    Q =
      Q ||
      function (e) {
        return e;
      },
    ne =
      (ne = ee.construct) ||
      function (e, t) {
        return new (Function.prototype.bind.apply(
          e,
          [null].concat(
            (function (e) {
              if (Array.isArray(e)) {
                for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
                return n;
              }
              return Array.from(e);
            })(t)
          )
        ))();
      },
    Ce = re(Array.prototype.forEach),
    Le = re(Array.prototype.pop),
    ze = re(Array.prototype.push),
    Ne = re(String.prototype.toLowerCase),
    Me = re(String.prototype.match),
    De = re(String.prototype.replace),
    Pe = re(String.prototype.indexOf),
    Ie = re(String.prototype.trim),
    je = re(RegExp.prototype.test),
    He =
      ((G = TypeError),
      function () {
        for (var e = arguments, t = arguments.length, n = Array(t), r = 0; r < t; r++) n[r] = e[r];
        return ne(G, n);
      });
  function re(o) {
    return function (e) {
      for (var t = arguments, n = arguments.length, r = Array(1 < n ? n - 1 : 0), i = 1; i < n; i++) r[i - 1] = t[i];
      return te(o, e, r);
    };
  }
  function qe(e, t) {
    V && V(e, null);
    for (var n = t.length; n--; ) {
      var r,
        i = t[n];
      'string' != typeof i || ((r = Ne(i)) !== i && (Y(t) || (t[n] = r), (i = r))), (e[i] = !0);
    }
    return e;
  }
  function Ue(e) {
    var t = J(null),
      n = void 0;
    for (n in e) te(W, e, [n]) && (t[n] = e[n]);
    return t;
  }
  function Be(e, t) {
    for (; null !== e; ) {
      var n = K(e, t);
      if (n) {
        if (n.get) return re(n.get);
        if ('function' == typeof n.value) return re(n.value);
      }
      e = X(e);
    }
    return function (e) {
      return console.warn('fallback value for', e), null;
    };
  }
  var Ze = Fe([
      'a',
      'abbr',
      'acronym',
      'address',
      'area',
      'article',
      'aside',
      'audio',
      'b',
      'bdi',
      'bdo',
      'big',
      'blink',
      'blockquote',
      'body',
      'br',
      'button',
      'canvas',
      'caption',
      'center',
      'cite',
      'code',
      'col',
      'colgroup',
      'content',
      'data',
      'datalist',
      'dd',
      'decorator',
      'del',
      'details',
      'dfn',
      'dialog',
      'dir',
      'div',
      'dl',
      'dt',
      'element',
      'em',
      'fieldset',
      'figcaption',
      'figure',
      'font',
      'footer',
      'form',
      'h1',
      'h2',
      'h3',
      'h4',
      'h5',
      'h6',
      'head',
      'header',
      'hgroup',
      'hr',
      'html',
      'i',
      'img',
      'input',
      'ins',
      'kbd',
      'label',
      'legend',
      'li',
      'main',
      'map',
      'mark',
      'marquee',
      'menu',
      'menuitem',
      'meter',
      'nav',
      'nobr',
      'ol',
      'optgroup',
      'option',
      'output',
      'p',
      'picture',
      'pre',
      'progress',
      'q',
      'rp',
      'rt',
      'ruby',
      's',
      'samp',
      'section',
      'select',
      'shadow',
      'small',
      'source',
      'spacer',
      'span',
      'strike',
      'strong',
      'style',
      'sub',
      'summary',
      'sup',
      'table',
      'tbody',
      'td',
      'template',
      'textarea',
      'tfoot',
      'th',
      'thead',
      'time',
      'tr',
      'track',
      'tt',
      'u',
      'ul',
      'var',
      'video',
      'wbr'
    ]),
    Ge = Fe([
      'svg',
      'a',
      'altglyph',
      'altglyphdef',
      'altglyphitem',
      'animatecolor',
      'animatemotion',
      'animatetransform',
      'circle',
      'clippath',
      'defs',
      'desc',
      'ellipse',
      'filter',
      'font',
      'g',
      'glyph',
      'glyphref',
      'hkern',
      'image',
      'line',
      'lineargradient',
      'marker',
      'mask',
      'metadata',
      'mpath',
      'path',
      'pattern',
      'polygon',
      'polyline',
      'radialgradient',
      'rect',
      'stop',
      'style',
      'switch',
      'symbol',
      'text',
      'textpath',
      'title',
      'tref',
      'tspan',
      'view',
      'vkern'
    ]),
    We = Fe([
      'feBlend',
      'feColorMatrix',
      'feComponentTransfer',
      'feComposite',
      'feConvolveMatrix',
      'feDiffuseLighting',
      'feDisplacementMap',
      'feDistantLight',
      'feFlood',
      'feFuncA',
      'feFuncB',
      'feFuncG',
      'feFuncR',
      'feGaussianBlur',
      'feMerge',
      'feMergeNode',
      'feMorphology',
      'feOffset',
      'fePointLight',
      'feSpecularLighting',
      'feSpotLight',
      'feTile',
      'feTurbulence'
    ]),
    Ve = Fe([
      'animate',
      'color-profile',
      'cursor',
      'discard',
      'fedropshadow',
      'feimage',
      'font-face',
      'font-face-format',
      'font-face-name',
      'font-face-src',
      'font-face-uri',
      'foreignobject',
      'hatch',
      'hatchpath',
      'mesh',
      'meshgradient',
      'meshpatch',
      'meshrow',
      'missing-glyph',
      'script',
      'set',
      'solidcolor',
      'unknown',
      'use'
    ]),
    Ye = Fe([
      'math',
      'menclose',
      'merror',
      'mfenced',
      'mfrac',
      'mglyph',
      'mi',
      'mlabeledtr',
      'mmultiscripts',
      'mn',
      'mo',
      'mover',
      'mpadded',
      'mphantom',
      'mroot',
      'mrow',
      'ms',
      'mspace',
      'msqrt',
      'mstyle',
      'msub',
      'msup',
      'msubsup',
      'mtable',
      'mtd',
      'mtext',
      'mtr',
      'munder',
      'munderover'
    ]),
    Xe = Fe([
      'maction',
      'maligngroup',
      'malignmark',
      'mlongdiv',
      'mscarries',
      'mscarry',
      'msgroup',
      'mstack',
      'msline',
      'msrow',
      'semantics',
      'annotation',
      'annotation-xml',
      'mprescripts',
      'none'
    ]),
    Ke = Fe(['#text']),
    Qe = Fe([
      'accept',
      'action',
      'align',
      'alt',
      'autocapitalize',
      'autocomplete',
      'autopictureinpicture',
      'autoplay',
      'background',
      'bgcolor',
      'border',
      'capture',
      'cellpadding',
      'cellspacing',
      'checked',
      'cite',
      'class',
      'clear',
      'color',
      'cols',
      'colspan',
      'controls',
      'controlslist',
      'coords',
      'crossorigin',
      'datetime',
      'decoding',
      'default',
      'dir',
      'disabled',
      'disablepictureinpicture',
      'disableremoteplayback',
      'download',
      'draggable',
      'enctype',
      'enterkeyhint',
      'face',
      'for',
      'headers',
      'height',
      'hidden',
      'high',
      'href',
      'hreflang',
      'id',
      'inputmode',
      'integrity',
      'ismap',
      'kind',
      'label',
      'lang',
      'list',
      'loading',
      'loop',
      'low',
      'max',
      'maxlength',
      'media',
      'method',
      'min',
      'minlength',
      'multiple',
      'muted',
      'name',
      'noshade',
      'novalidate',
      'nowrap',
      'open',
      'optimum',
      'pattern',
      'placeholder',
      'playsinline',
      'poster',
      'preload',
      'pubdate',
      'radiogroup',
      'readonly',
      'rel',
      'required',
      'rev',
      'reversed',
      'role',
      'rows',
      'rowspan',
      'spellcheck',
      'scope',
      'selected',
      'shape',
      'size',
      'sizes',
      'span',
      'srclang',
      'start',
      'src',
      'srcset',
      'step',
      'style',
      'summary',
      'tabindex',
      'title',
      'translate',
      'type',
      'usemap',
      'valign',
      'value',
      'width',
      'xmlns',
      'slot'
    ]),
    Je = Fe([
      'accent-height',
      'accumulate',
      'additive',
      'alignment-baseline',
      'ascent',
      'attributename',
      'attributetype',
      'azimuth',
      'basefrequency',
      'baseline-shift',
      'begin',
      'bias',
      'by',
      'class',
      'clip',
      'clippathunits',
      'clip-path',
      'clip-rule',
      'color',
      'color-interpolation',
      'color-interpolation-filters',
      'color-profile',
      'color-rendering',
      'cx',
      'cy',
      'd',
      'dx',
      'dy',
      'diffuseconstant',
      'direction',
      'display',
      'divisor',
      'dur',
      'edgemode',
      'elevation',
      'end',
      'fill',
      'fill-opacity',
      'fill-rule',
      'filter',
      'filterunits',
      'flood-color',
      'flood-opacity',
      'font-family',
      'font-size',
      'font-size-adjust',
      'font-stretch',
      'font-style',
      'font-variant',
      'font-weight',
      'fx',
      'fy',
      'g1',
      'g2',
      'glyph-name',
      'glyphref',
      'gradientunits',
      'gradienttransform',
      'height',
      'href',
      'id',
      'image-rendering',
      'in',
      'in2',
      'k',
      'k1',
      'k2',
      'k3',
      'k4',
      'kerning',
      'keypoints',
      'keysplines',
      'keytimes',
      'lang',
      'lengthadjust',
      'letter-spacing',
      'kernelmatrix',
      'kernelunitlength',
      'lighting-color',
      'local',
      'marker-end',
      'marker-mid',
      'marker-start',
      'markerheight',
      'markerunits',
      'markerwidth',
      'maskcontentunits',
      'maskunits',
      'max',
      'mask',
      'media',
      'method',
      'mode',
      'min',
      'name',
      'numoctaves',
      'offset',
      'operator',
      'opacity',
      'order',
      'orient',
      'orientation',
      'origin',
      'overflow',
      'paint-order',
      'path',
      'pathlength',
      'patterncontentunits',
      'patterntransform',
      'patternunits',
      'points',
      'preservealpha',
      'preserveaspectratio',
      'primitiveunits',
      'r',
      'rx',
      'ry',
      'radius',
      'refx',
      'refy',
      'repeatcount',
      'repeatdur',
      'restart',
      'result',
      'rotate',
      'scale',
      'seed',
      'shape-rendering',
      'specularconstant',
      'specularexponent',
      'spreadmethod',
      'startoffset',
      'stddeviation',
      'stitchtiles',
      'stop-color',
      'stop-opacity',
      'stroke-dasharray',
      'stroke-dashoffset',
      'stroke-linecap',
      'stroke-linejoin',
      'stroke-miterlimit',
      'stroke-opacity',
      'stroke',
      'stroke-width',
      'style',
      'surfacescale',
      'systemlanguage',
      'tabindex',
      'targetx',
      'targety',
      'transform',
      'text-anchor',
      'text-decoration',
      'text-rendering',
      'textlength',
      'type',
      'u1',
      'u2',
      'unicode',
      'values',
      'viewbox',
      'visibility',
      'version',
      'vert-adv-y',
      'vert-origin-x',
      'vert-origin-y',
      'width',
      'word-spacing',
      'wrap',
      'writing-mode',
      'xchannelselector',
      'ychannelselector',
      'x',
      'x1',
      'x2',
      'xmlns',
      'y',
      'y1',
      'y2',
      'z',
      'zoomandpan'
    ]),
    et = Fe([
      'accent',
      'accentunder',
      'align',
      'bevelled',
      'close',
      'columnsalign',
      'columnlines',
      'columnspan',
      'denomalign',
      'depth',
      'dir',
      'display',
      'displaystyle',
      'encoding',
      'fence',
      'frame',
      'height',
      'href',
      'id',
      'largeop',
      'length',
      'linethickness',
      'lspace',
      'lquote',
      'mathbackground',
      'mathcolor',
      'mathsize',
      'mathvariant',
      'maxsize',
      'minsize',
      'movablelimits',
      'notation',
      'numalign',
      'open',
      'rowalign',
      'rowlines',
      'rowspacing',
      'rowspan',
      'rspace',
      'rquote',
      'scriptlevel',
      'scriptminsize',
      'scriptsizemultiplier',
      'selection',
      'separator',
      'separators',
      'stretchy',
      'subscriptshift',
      'supscriptshift',
      'symmetric',
      'voffset',
      'width',
      'xmlns'
    ]),
    tt = Fe(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']),
    nt = Q(/\{\{[\s\S]*|[\s\S]*\}\}/gm),
    rt = Q(/<%[\s\S]*|[\s\S]*%>/gm),
    it = Q(/^data-[\-\w.\u00B7-\uFFFF]/),
    ot = Q(/^aria-[\-\w]+$/),
    at = Q(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),
    st = Q(/^(?:\w+script|data):/i),
    lt = Q(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
    ct =
      'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
        ? function (e) {
            return typeof e;
          }
        : function (e) {
            return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype
              ? 'symbol'
              : typeof e;
          };
  function ut(e) {
    if (Array.isArray(e)) {
      for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t];
      return n;
    }
    return Array.from(e);
  }
  var pt = function () {
      return 'undefined' == typeof window ? null : window;
    },
    ht = function (e, t) {
      if ('object' !== (void 0 === e ? 'undefined' : ct(e)) || 'function' != typeof e.createPolicy) return null;
      var n = null,
        r = 'data-tt-policy-suffix';
      t.currentScript && t.currentScript.hasAttribute(r) && (n = t.currentScript.getAttribute(r));
      var i = 'dompurify' + (n ? '#' + n : '');
      try {
        return e.createPolicy(i, {
          createHTML: function (e) {
            return e;
          }
        });
      } catch (e) {
        return console.warn('TrustedTypes policy ' + i + ' could not be created.'), null;
      }
    };
  var ie,
    oe,
    ae = (function t(e) {
      function c(e) {
        return t(e);
      }
      var s = 0 < arguments.length && void 0 !== e ? e : pt();
      if (((c.version = '2.3.1'), (c.removed = []), !s || !s.document || 9 !== s.document.nodeType))
        return (c.isSupported = !1), c;
      var l = s.document,
        o = s.document,
        u = s.DocumentFragment,
        n = s.HTMLTemplateElement,
        p = s.Node,
        a = s.Element,
        r = s.NodeFilter,
        i = s.NamedNodeMap,
        h = void 0 === i ? s.NamedNodeMap || s.MozNamedAttrMap : i,
        d = s.Text,
        f = s.Comment,
        g = s.DOMParser,
        e = s.trustedTypes,
        i = a.prototype,
        m = Be(i, 'cloneNode'),
        v = Be(i, 'nextSibling'),
        y = Be(i, 'childNodes'),
        b = Be(i, 'parentNode');
      'function' != typeof n ||
        ((n = o.createElement('template')).content && n.content.ownerDocument && (o = n.content.ownerDocument));
      var k = ht(e, l),
        w = k && ee ? k.createHTML('') : '',
        x = o.implementation,
        _ = o.createNodeIterator,
        S = o.createDocumentFragment,
        A = o.getElementsByTagName,
        T = l.importNode,
        E = {};
      try {
        E = Ue(o).documentMode ? o.documentMode : {};
      } catch (e) {}
      var R = {};
      c.isSupported = 'function' == typeof b && x && void 0 !== x.createHTMLDocument && 9 !== E;
      function O(e) {
        (ge && ge === e) ||
          ((e && 'object' === (void 0 === e ? 'undefined' : ct(e))) || (e = {}),
          (e = Ue(e)),
          (P = 'ALLOWED_TAGS' in e ? qe({}, e.ALLOWED_TAGS) : I),
          (j = 'ALLOWED_ATTR' in e ? qe({}, e.ALLOWED_ATTR) : H),
          (le = 'ADD_URI_SAFE_ATTR' in e ? qe(Ue(ce), e.ADD_URI_SAFE_ATTR) : ce),
          (ae = 'ADD_DATA_URI_TAGS' in e ? qe(Ue(se), e.ADD_DATA_URI_TAGS) : se),
          (ie = 'FORBID_CONTENTS' in e ? qe({}, e.FORBID_CONTENTS) : oe),
          (q = 'FORBID_TAGS' in e ? qe({}, e.FORBID_TAGS) : {}),
          (U = 'FORBID_ATTR' in e ? qe({}, e.FORBID_ATTR) : {}),
          ($ = 'USE_PROFILES' in e && e.USE_PROFILES),
          (B = !1 !== e.ALLOW_ARIA_ATTR),
          (Z = !1 !== e.ALLOW_DATA_ATTR),
          (G = e.ALLOW_UNKNOWN_PROTOCOLS || !1),
          (W = e.SAFE_FOR_TEMPLATES || !1),
          (V = e.WHOLE_DOCUMENT || !1),
          (K = e.RETURN_DOM || !1),
          (Q = e.RETURN_DOM_FRAGMENT || !1),
          (J = !1 !== e.RETURN_DOM_IMPORT),
          (ee = e.RETURN_TRUSTED_TYPE || !1),
          (X = e.FORCE_BODY || !1),
          (te = !1 !== e.SANITIZE_DOM),
          (ne = !1 !== e.KEEP_CONTENT),
          (re = e.IN_PLACE || !1),
          (D = e.ALLOWED_URI_REGEXP || D),
          (de = e.NAMESPACE || he),
          W && (Z = !1),
          Q && (K = !0),
          $ &&
            ((P = qe({}, [].concat(ut(Ke)))),
            (j = []),
            !0 === $.html && (qe(P, Ze), qe(j, Qe)),
            !0 === $.svg && (qe(P, Ge), qe(j, Je), qe(j, tt)),
            !0 === $.svgFilters && (qe(P, We), qe(j, Je), qe(j, tt)),
            !0 === $.mathMl && (qe(P, Ye), qe(j, et), qe(j, tt))),
          e.ADD_TAGS && (P === I && (P = Ue(P)), qe(P, e.ADD_TAGS)),
          e.ADD_ATTR && (j === H && (j = Ue(j)), qe(j, e.ADD_ATTR)),
          e.ADD_URI_SAFE_ATTR && qe(le, e.ADD_URI_SAFE_ATTR),
          e.FORBID_CONTENTS && (ie === oe && (ie = Ue(ie)), qe(ie, e.FORBID_CONTENTS)),
          ne && (P['#text'] = !0),
          V && qe(P, ['html', 'head', 'body']),
          P.table && (qe(P, ['tbody']), delete q.tbody),
          Fe && Fe(e),
          (ge = e));
      }
      var $,
        F = nt,
        C = rt,
        L = it,
        z = ot,
        N = st,
        M = lt,
        D = at,
        P = null,
        I = qe({}, [].concat(ut(Ze), ut(Ge), ut(We), ut(Ye), ut(Ke))),
        j = null,
        H = qe({}, [].concat(ut(Qe), ut(Je), ut(et), ut(tt))),
        q = null,
        U = null,
        B = !0,
        Z = !0,
        G = !1,
        W = !1,
        V = !1,
        Y = !1,
        X = !1,
        K = !1,
        Q = !1,
        J = !0,
        ee = !1,
        te = !0,
        ne = !0,
        re = !1,
        ie = null,
        oe = qe({}, [
          'annotation-xml',
          'audio',
          'colgroup',
          'desc',
          'foreignobject',
          'head',
          'iframe',
          'math',
          'mi',
          'mn',
          'mo',
          'ms',
          'mtext',
          'noembed',
          'noframes',
          'noscript',
          'plaintext',
          'script',
          'style',
          'svg',
          'template',
          'thead',
          'title',
          'video',
          'xmp'
        ]),
        ae = null,
        se = qe({}, ['audio', 'video', 'img', 'source', 'image', 'track']),
        le = null,
        ce = qe({}, [
          'alt',
          'class',
          'for',
          'id',
          'label',
          'name',
          'pattern',
          'placeholder',
          'role',
          'summary',
          'title',
          'value',
          'style',
          'xmlns'
        ]),
        ue = 'http://www.w3.org/1998/Math/MathML',
        pe = 'http://www.w3.org/2000/svg',
        he = 'http://www.w3.org/1999/xhtml',
        de = he,
        fe = !1,
        ge = null,
        me = o.createElement('form'),
        ve = qe({}, ['mi', 'mo', 'mn', 'ms', 'mtext']),
        ye = qe({}, ['foreignobject', 'desc', 'title', 'annotation-xml']),
        be = qe({}, Ge);
      qe(be, We), qe(be, Ve);
      var ke = qe({}, Ye);
      qe(ke, Xe);
      function we(t) {
        ze(c.removed, {element: t});
        try {
          t.parentNode.removeChild(t);
        } catch (e) {
          try {
            t.outerHTML = w;
          } catch (e) {
            t.remove();
          }
        }
      }
      function xe(e, t) {
        try {
          ze(c.removed, {attribute: t.getAttributeNode(e), from: t});
        } catch (e) {
          ze(c.removed, {attribute: null, from: t});
        }
        if ((t.removeAttribute(e), 'is' === e && !j[e]))
          if (K || Q)
            try {
              we(t);
            } catch (e) {}
          else
            try {
              t.setAttribute(e, '');
            } catch (e) {}
      }
      function _e(e) {
        var t = void 0,
          n = void 0;
        X ? (e = '<remove></remove>' + e) : (n = (i = Me(e, /^[\r\n\t ]+/)) && i[0]);
        var r = k ? k.createHTML(e) : e;
        if (de === he)
          try {
            t = new g().parseFromString(r, 'text/html');
          } catch (e) {}
        if (!t || !t.documentElement) {
          t = x.createDocument(de, 'template', null);
          try {
            t.documentElement.innerHTML = fe ? '' : r;
          } catch (e) {}
        }
        var i = t.body || t.documentElement;
        return (
          e && n && i.insertBefore(o.createTextNode(n), i.childNodes[0] || null),
          de === he ? A.call(t, V ? 'html' : 'body')[0] : V ? t.documentElement : i
        );
      }
      function Se(e) {
        return _.call(e.ownerDocument || e, e, r.SHOW_ELEMENT | r.SHOW_COMMENT | r.SHOW_TEXT, null, !1);
      }
      function Ae(e) {
        return 'object' === (void 0 === p ? 'undefined' : ct(p))
          ? e instanceof p
          : e &&
              'object' === (void 0 === e ? 'undefined' : ct(e)) &&
              'number' == typeof e.nodeType &&
              'string' == typeof e.nodeName;
      }
      function Te(e, t, n) {
        R[e] &&
          Ce(R[e], function (e) {
            e.call(c, t, n, ge);
          });
      }
      function Ee(e) {
        var t;
        if (
          (Te('beforeSanitizeElements', e, null),
          !(
            (n = e) instanceof d ||
            n instanceof f ||
            ('string' == typeof n.nodeName &&
              'string' == typeof n.textContent &&
              'function' == typeof n.removeChild &&
              n.attributes instanceof h &&
              'function' == typeof n.removeAttribute &&
              'function' == typeof n.setAttribute &&
              'string' == typeof n.namespaceURI &&
              'function' == typeof n.insertBefore)
          ))
        )
          return we(e), 1;
        if (Me(e.nodeName, /[\u0080-\uFFFF]/)) return we(e), 1;
        var n = Ne(e.nodeName);
        if (
          (Te('uponSanitizeElement', e, {tagName: n, allowedTags: P}),
          !Ae(e.firstElementChild) &&
            (!Ae(e.content) || !Ae(e.content.firstElementChild)) &&
            je(/<[/\w]/g, e.innerHTML) &&
            je(/<[/\w]/g, e.textContent))
        )
          return we(e), 1;
        if ('select' === n && je(/<template/i, e.innerHTML)) return we(e), 1;
        if (P[n] && !q[n])
          return (e instanceof a &&
            !(function (e) {
              var t = b(e);
              (t && t.tagName) || (t = {namespaceURI: he, tagName: 'template'});
              var n = Ne(e.tagName),
                r = Ne(t.tagName);
              return e.namespaceURI === pe
                ? t.namespaceURI === he
                  ? 'svg' === n
                  : t.namespaceURI === ue
                  ? 'svg' === n && ('annotation-xml' === r || ve[r])
                  : Boolean(be[n])
                : e.namespaceURI === ue
                ? t.namespaceURI === he
                  ? 'math' === n
                  : t.namespaceURI === pe
                  ? 'math' === n && ye[r]
                  : Boolean(ke[n])
                : e.namespaceURI === he &&
                  (t.namespaceURI !== pe || ye[r]) &&
                  (t.namespaceURI !== ue || ve[r]) &&
                  ((r = qe({}, ['title', 'style', 'font', 'a', 'script'])), !ke[n] && (r[n] || !be[n]));
            })(e)) ||
            (('noscript' === n || 'noembed' === n) && je(/<\/no(script|embed)/i, e.innerHTML))
            ? (we(e), 1)
            : (W &&
                3 === e.nodeType &&
                ((t = e.textContent),
                (t = De(t, F, ' ')),
                (t = De(t, C, ' ')),
                e.textContent !== t && (ze(c.removed, {element: e.cloneNode()}), (e.textContent = t))),
              Te('afterSanitizeElements', e, null),
              0);
        if (ne && !ie[n]) {
          var r = b(e) || e.parentNode,
            i = y(e) || e.childNodes;
          if (i && r) for (var o = i.length - 1; 0 <= o; --o) r.insertBefore(m(i[o], !0), v(e));
        }
        return we(e), 1;
      }
      function Re(e, t, n) {
        if (te && ('id' === t || 'name' === t) && (n in o || n in me)) return !1;
        if ((!Z || U[t] || !je(L, t)) && (!B || !je(z, t))) {
          if (!j[t] || U[t]) return !1;
          if (
            !le[t] &&
            !je(D, De(n, M, '')) &&
            (('src' !== t && 'xlink:href' !== t && 'href' !== t) || 'script' === e || 0 !== Pe(n, 'data:') || !ae[e]) &&
            (!G || je(N, De(n, M, ''))) &&
            n
          )
            return !1;
        }
        return !0;
      }
      function Oe(e) {
        var t = void 0,
          n = void 0;
        Te('beforeSanitizeAttributes', e, null);
        var r = e.attributes;
        if (r) {
          for (var i = {attrName: '', attrValue: '', keepAttr: !0, allowedAttributes: j}, n = r.length; n--; ) {
            var o = (l = r[n]).name,
              a = l.namespaceURI,
              t = Ie(l.value),
              s = Ne(o);
            if (
              ((i.attrName = s),
              (i.attrValue = t),
              (i.keepAttr = !0),
              (i.forceKeepAttr = void 0),
              Te('uponSanitizeAttribute', e, i),
              (t = i.attrValue),
              !i.forceKeepAttr && (xe(o, e), i.keepAttr))
            )
              if (je(/\/>/i, t)) xe(o, e);
              else {
                W && ((t = De(t, F, ' ')), (t = De(t, C, ' ')));
                var l = e.nodeName.toLowerCase();
                if (Re(l, s, t))
                  try {
                    a ? e.setAttributeNS(a, o, t) : e.setAttribute(o, t), Le(c.removed);
                  } catch (e) {}
              }
          }
          Te('afterSanitizeAttributes', e, null);
        }
      }
      function $e(e) {
        var t,
          n = Se(e);
        for (Te('beforeSanitizeShadowDOM', e, null); (t = n.nextNode()); )
          Te('uponSanitizeShadowNode', t, null), Ee(t) || (t.content instanceof u && $e(t.content), Oe(t));
        Te('afterSanitizeShadowDOM', e, null);
      }
      return (
        (c.sanitize = function (e, t) {
          var n,
            r = void 0,
            i = void 0,
            o = void 0;
          if (((fe = !e) && (e = '\x3c!--\x3e'), 'string' != typeof e && !Ae(e))) {
            if ('function' != typeof e.toString) throw He('toString is not a function');
            if ('string' != typeof (e = e.toString())) throw He('dirty is not a string, aborting');
          }
          if (!c.isSupported) {
            if ('object' === ct(s.toStaticHTML) || 'function' == typeof s.toStaticHTML) {
              if ('string' == typeof e) return s.toStaticHTML(e);
              if (Ae(e)) return s.toStaticHTML(e.outerHTML);
            }
            return e;
          }
          if ((Y || O(t), (c.removed = []), 'string' == typeof e && (re = !1), !re))
            if (e instanceof p)
              (1 === (t = (r = _e('\x3c!----\x3e')).ownerDocument.importNode(e, !0)).nodeType &&
                'BODY' === t.nodeName) ||
              'HTML' === t.nodeName
                ? (r = t)
                : r.appendChild(t);
            else {
              if (!K && !W && !V && -1 === e.indexOf('<')) return k && ee ? k.createHTML(e) : e;
              if (!(r = _e(e))) return K ? null : w;
            }
          r && X && we(r.firstChild);
          for (var a = Se(re ? e : r); (n = a.nextNode()); )
            (3 === n.nodeType && n === i) || Ee(n) || (n.content instanceof u && $e(n.content), Oe(n), (i = n));
          if (((i = null), re)) return e;
          if (K) {
            if (Q) for (o = S.call(r.ownerDocument); r.firstChild; ) o.appendChild(r.firstChild);
            else o = r;
            return J && (o = T.call(l, o, !0)), o;
          }
          return (
            (e = V ? r.outerHTML : r.innerHTML),
            W && ((e = De(e, F, ' ')), (e = De(e, C, ' '))),
            k && ee ? k.createHTML(e) : e
          );
        }),
        (c.setConfig = function (e) {
          O(e), (Y = !0);
        }),
        (c.clearConfig = function () {
          (ge = null), (Y = !1);
        }),
        (c.isValidAttribute = function (e, t, n) {
          return ge || O({}), (e = Ne(e)), (t = Ne(t)), Re(e, t, n);
        }),
        (c.addHook = function (e, t) {
          'function' == typeof t && ((R[e] = R[e] || []), ze(R[e], t));
        }),
        (c.removeHook = function (e) {
          R[e] && Le(R[e]);
        }),
        (c.removeHooks = function (e) {
          R[e] && (R[e] = []);
        }),
        (c.removeAllHooks = function () {
          R = {};
        }),
        c
      );
    })();
  function se(e) {
    var t,
      n = e.loaded,
      r = e.total,
      i = e.step;
    ie || ((e = v('div')).classList.add('progress'), a(g, e), (ie = e)),
      (t = i ? (80 < (t = parseInt(ie.style.width || 0, 10) + i) ? 80 : t) : Math.floor((n / r) * 100)),
      (ie.style.opacity = 1),
      (ie.style.width = 95 <= t ? '100%' : t + '%'),
      95 <= t &&
        (clearTimeout(oe),
        (oe = setTimeout(function (e) {
          (ie.style.opacity = 0), (ie.style.width = '0%');
        }, 200)));
  }
  var le = {};
  function ce(i, e, t) {
    void 0 === e && (e = !1), void 0 === t && (t = {});
    function o() {
      a.addEventListener.apply(a, arguments);
    }
    var n,
      a = new XMLHttpRequest(),
      r = le[i];
    if (r)
      return {
        then: function (e) {
          return e(r.content, r.opt);
        },
        abort: u
      };
    for (n in (a.open('GET', i), t)) l.call(t, n) && a.setRequestHeader(n, t[n]);
    return (
      a.send(),
      {
        then: function (t, n) {
          var r;
          void 0 === n && (n = u),
            e &&
              ((r = setInterval(function (e) {
                return se({step: Math.floor(5 * Math.random() + 1)});
              }, 500)),
              o('progress', se),
              o('loadend', function (e) {
                se(e), clearInterval(r);
              })),
            o('error', n),
            o('load', function (e) {
              e = e.target;
              400 <= e.status
                ? n(e)
                : ((e = le[i] = {content: e.response, opt: {updatedAt: a.getResponseHeader('last-modified')}}),
                  t(e.content, e.opt));
            });
        },
        abort: function (e) {
          return 4 !== a.readyState && a.abort();
        }
      }
    );
  }
  function ue(e, t) {
    e.innerHTML = e.innerHTML.replace(/var\(\s*--theme-color.*?\)/g, t);
  }
  var pe = f.title;
  function he() {
    var e,
      t = d('section.cover');
    t &&
      ((e = t.getBoundingClientRect().height),
      window.pageYOffset >= e || t.classList.contains('hidden') ? S(g, 'add', 'sticky') : S(g, 'remove', 'sticky'));
  }
  function de(e, t, r, n) {
    var i = [];
    null != (t = d(t)) && (i = k(t, 'a'));
    var o,
      a = decodeURI(e.toURL(e.getCurrentPath()));
    return (
      i
        .sort(function (e, t) {
          return t.href.length - e.href.length;
        })
        .forEach(function (e) {
          var t = decodeURI(e.getAttribute('href')),
            n = r ? e.parentNode : e;
          (e.title = e.title || e.innerText),
            0 !== a.indexOf(t) || o ? S(n, 'remove', 'active') : ((o = e), S(n, 'add', 'active'));
        }),
      n && (f.title = o ? o.title || o.innerText + ' - ' + pe : pe),
      o
    );
  }
  function fe(e, t) {
    for (var n = 0; n < t.length; n++) {
      var r = t[n];
      (r.enumerable = r.enumerable || !1),
        (r.configurable = !0),
        'value' in r && (r.writable = !0),
        Object.defineProperty(e, r.key, r);
    }
  }
  var ge =
    ((function (e, t, n) {
      return t && fe(e.prototype, t), n && fe(e, n), e;
    })(me, [
      {
        key: 'getIntermediateValue',
        value: function (e) {
          return this.decimal ? e : Math.round(e);
        }
      },
      {
        key: 'getFinalValue',
        value: function () {
          return this.end;
        }
      }
    ]),
    me);
  function me() {
    var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
    !(function (e, t) {
      if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function');
    })(this, me),
      (this.start = e.start),
      (this.end = e.end),
      (this.decimal = e.decimal);
  }
  function ve(e, t) {
    for (var n = 0; n < t.length; n++) {
      var r = t[n];
      (r.enumerable = r.enumerable || !1),
        (r.configurable = !0),
        'value' in r && (r.writable = !0),
        Object.defineProperty(e, r.key, r);
    }
  }
  var ye =
    ((function (e, t, n) {
      return t && ve(e.prototype, t), n && ve(e, n), e;
    })(be, [
      {
        key: 'begin',
        value: function () {
          return (
            this.isRunning ||
              this.next === this.end ||
              (this.frame = window.requestAnimationFrame(this._tick.bind(this))),
            this
          );
        }
      },
      {
        key: 'stop',
        value: function () {
          return (
            window.cancelAnimationFrame(this.frame),
            (this.isRunning = !1),
            (this.frame = null),
            (this.timeStart = null),
            (this.next = null),
            this
          );
        }
      },
      {
        key: 'on',
        value: function (e, t) {
          return (this.events[e] = this.events[e] || []), this.events[e].push(t), this;
        }
      },
      {
        key: '_emit',
        value: function (e, t) {
          var n = this,
            e = this.events[e];
          e &&
            e.forEach(function (e) {
              return e.call(n, t);
            });
        }
      },
      {
        key: '_tick',
        value: function (e) {
          this.isRunning = !0;
          var t = this.next || this.start;
          this.timeStart || (this.timeStart = e),
            (this.timeElapsed = e - this.timeStart),
            (this.next = this.ease(this.timeElapsed, this.start, this.end - this.start, this.duration)),
            this._shouldTick(t)
              ? (this._emit('tick', this.tweener.getIntermediateValue(this.next)),
                (this.frame = window.requestAnimationFrame(this._tick.bind(this))))
              : (this._emit('tick', this.tweener.getFinalValue()), this._emit('done', null));
        }
      },
      {
        key: '_shouldTick',
        value: function (e) {
          return {up: this.next < this.end && e <= this.next, down: this.next > this.end && e >= this.next}[
            this.direction
          ];
        }
      },
      {
        key: '_defaultEase',
        value: function (e, t, n, r) {
          return (e /= r / 2) < 1 ? (n / 2) * e * e + t : (-n / 2) * (--e * (e - 2) - 1) + t;
        }
      }
    ]),
    be);
  function be() {
    var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {};
    !(function (e, t) {
      if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function');
    })(this, be),
      (this.duration = e.duration || 1e3),
      (this.ease = e.easing || this._defaultEase),
      (this.tweener = e.tweener || new ge(e)),
      (this.start = this.tweener.start),
      (this.end = this.tweener.end),
      (this.frame = null),
      (this.next = null),
      (this.isRunning = !1),
      (this.events = {}),
      (this.direction = this.start < this.end ? 'up' : 'down');
  }
  var ke = document.currentScript;
  function we(e) {
    var t,
      n = y(
        {
          el: '#app',
          repo: '',
          maxLevel: 6,
          subMaxLevel: 0,
          loadSidebar: null,
          loadNavbar: null,
          homepage: 'README.md',
          coverpage: '',
          basePath: '',
          auto2top: !1,
          name: '',
          themeColor: '',
          nameLink: window.location.pathname,
          autoHeader: !1,
          executeScript: null,
          noEmoji: !1,
          ga: '',
          ext: '.md',
          mergeNavbar: !1,
          formatUpdated: '',
          externalLinkTarget: '_blank',
          cornerExternalLinkTarget: '_blank',
          externalLinkRel: 'noopener',
          routerMode: 'hash',
          noCompileLinks: [],
          crossOriginLinks: [],
          relativePath: !1,
          topMargin: 0
        },
        'function' == typeof window.$docsify ? window.$docsify(e) : window.$docsify
      ),
      r =
        ke ||
        [].slice.call(document.getElementsByTagName('script')).filter(function (e) {
          return /docsify\./.test(e.src);
        })[0];
    if (r)
      for (var i in n) {
        !l.call(n, i) || (c((t = r.getAttribute('data-' + o(i)))) && (n[i] = '' === t || t));
      }
    return (
      !0 === n.loadSidebar && (n.loadSidebar = '_sidebar' + n.ext),
      !0 === n.loadNavbar && (n.loadNavbar = '_navbar' + n.ext),
      !0 === n.coverpage && (n.coverpage = '_coverpage' + n.ext),
      !0 === n.repo && (n.repo = ''),
      !0 === n.name && (n.name = ''),
      (window.$docsify = n)
    );
  }
  var xe = {},
    _e = !1,
    Se = null,
    Ae = !0,
    Te = 0;
  function Ee(e) {
    if (Ae) {
      for (
        var t,
          n,
          r = d('.sidebar'),
          i = k('.anchor'),
          o = b(r, '.sidebar-nav'),
          a = b(r, 'li.active'),
          s = document.documentElement,
          l = ((s && s.scrollTop) || document.body.scrollTop) - Te,
          c = 0,
          u = i.length;
        c < u;
        c += 1
      ) {
        var p = i[c];
        if (p.offsetTop > l) {
          t = t || p;
          break;
        }
        t = p;
      }
      !t ||
        ((n = xe[Re(e, t.getAttribute('data-id'))]) &&
          n !== a &&
          (a && a.classList.remove('active'),
          n.classList.add('active'),
          (a = n),
          !_e &&
            g.classList.contains('sticky') &&
            ((s = r.clientHeight),
            (e = a.offsetTop + a.clientHeight + 40),
            (n = a.offsetTop >= o.scrollTop && e <= o.scrollTop + s),
            (a = +e < s),
            (r.scrollTop = n ? o.scrollTop : a ? 0 : e - s))));
    }
  }
  function Re(e, t) {
    return decodeURIComponent(e) + '?id=' + decodeURIComponent(t);
  }
  function Oe(e, t) {
    var n, r;
    t &&
      ((r = we().topMargin),
      (n = b('#' + t)) &&
        ((n = n),
        void 0 === (r = r) && (r = 0),
        Se && Se.stop(),
        (Ae = !1),
        (Se = new ye({
          start: window.pageYOffset,
          end: Math.round(n.getBoundingClientRect().top) + window.pageYOffset - r,
          duration: 500
        })
          .on('tick', function (e) {
            return window.scrollTo(0, e);
          })
          .on('done', function () {
            (Ae = !0), (Se = null);
          })
          .begin())),
      (e = xe[Re(e, t)]),
      (t = b(d('.sidebar'), 'li.active')) && t.classList.remove('active'),
      e && e.classList.add('active'));
  }
  var $e = f.scrollingElement || f.documentElement;
  var dt =
    'undefined' != typeof globalThis
      ? globalThis
      : 'undefined' != typeof window
      ? window
      : 'undefined' != typeof global
      ? global
      : 'undefined' != typeof self
      ? self
      : {};
  function ft(e, t) {
    return e((t = {exports: {}}), t.exports), t.exports;
  }
  function gt(e) {
    return wt[e];
  }
  var mt = ft(function (t) {
      function e() {
        return {
          baseUrl: null,
          breaks: !1,
          gfm: !0,
          headerIds: !0,
          headerPrefix: '',
          highlight: null,
          langPrefix: 'language-',
          mangle: !0,
          pedantic: !1,
          renderer: null,
          sanitize: !1,
          sanitizer: null,
          silent: !1,
          smartLists: !1,
          smartypants: !1,
          tokenizer: null,
          walkTokens: null,
          xhtml: !1
        };
      }
      t.exports = {
        defaults: e(),
        getDefaults: e,
        changeDefaults: function (e) {
          t.exports.defaults = e;
        }
      };
    }),
    vt = (mt.defaults, mt.getDefaults, mt.changeDefaults, /[&<>"']/),
    yt = /[&<>"']/g,
    bt = /[<>"']|&(?!#?\w+;)/,
    kt = /[<>"']|&(?!#?\w+;)/g,
    wt = {'&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;'};
  var xt = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;
  function _t(e) {
    return e.replace(xt, function (e, t) {
      return 'colon' === (t = t.toLowerCase())
        ? ':'
        : '#' === t.charAt(0)
        ? 'x' === t.charAt(1)
          ? String.fromCharCode(parseInt(t.substring(2), 16))
          : String.fromCharCode(+t.substring(1))
        : '';
    });
  }
  var St = /(^|[^\[])\^/g;
  var At = /[^\w:]/g,
    Tt = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;
  var Et = {},
    Rt = /^[^:]+:\/*[^/]*$/,
    Ot = /^([^:]+:)[\s\S]*$/,
    $t = /^([^:]+:\/*[^/]*)[\s\S]*$/;
  function Ft(e, t) {
    Et[' ' + e] || (Rt.test(e) ? (Et[' ' + e] = e + '/') : (Et[' ' + e] = Ct(e, '/', !0)));
    var n = -1 === (e = Et[' ' + e]).indexOf(':');
    return '//' === t.substring(0, 2)
      ? n
        ? t
        : e.replace(Ot, '$1') + t
      : '/' === t.charAt(0)
      ? n
        ? t
        : e.replace($t, '$1') + t
      : e + t;
  }
  function Ct(e, t, n) {
    var r = e.length;
    if (0 === r) return '';
    for (var i = 0; i < r; ) {
      var o = e.charAt(r - i - 1);
      if (o !== t || n) {
        if (o === t || !n) break;
        i++;
      } else i++;
    }
    return e.substr(0, r - i);
  }
  var Lt = function (e, t) {
      if (t) {
        if (vt.test(e)) return e.replace(yt, gt);
      } else if (bt.test(e)) return e.replace(kt, gt);
      return e;
    },
    zt = _t,
    Nt = function (n, e) {
      (n = n.source || n), (e = e || '');
      var r = {
        replace: function (e, t) {
          return (t = (t = t.source || t).replace(St, '$1')), (n = n.replace(e, t)), r;
        },
        getRegex: function () {
          return new RegExp(n, e);
        }
      };
      return r;
    },
    Mt = function (e, t, n) {
      if (e) {
        var r;
        try {
          r = decodeURIComponent(_t(n)).replace(At, '').toLowerCase();
        } catch (e) {
          return null;
        }
        if (0 === r.indexOf('javascript:') || 0 === r.indexOf('vbscript:') || 0 === r.indexOf('data:')) return null;
      }
      t && !Tt.test(n) && (n = Ft(t, n));
      try {
        n = encodeURI(n).replace(/%25/g, '%');
      } catch (e) {
        return null;
      }
      return n;
    },
    Dt = {exec: function () {}},
    Pt = function (e) {
      for (var t, n, r = arguments, i = 1; i < arguments.length; i++)
        for (n in (t = r[i])) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
      return e;
    },
    It = function (e, t) {
      var n = e
          .replace(/\|/g, function (e, t, n) {
            for (var r = !1, i = t; 0 <= --i && '\\' === n[i]; ) r = !r;
            return r ? '|' : ' |';
          })
          .split(/ \|/),
        r = 0;
      if (n.length > t) n.splice(t);
      else for (; n.length < t; ) n.push('');
      for (; r < n.length; r++) n[r] = n[r].trim().replace(/\\\|/g, '|');
      return n;
    },
    I = function (e, t) {
      if (-1 === e.indexOf(t[1])) return -1;
      for (var n = e.length, r = 0, i = 0; i < n; i++)
        if ('\\' === e[i]) i++;
        else if (e[i] === t[0]) r++;
        else if (e[i] === t[1] && --r < 0) return i;
      return -1;
    },
    ee = function (e) {
      e &&
        e.sanitize &&
        !e.silent &&
        console.warn(
          'marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options'
        );
    },
    Q = function (e, t) {
      if (t < 1) return '';
      for (var n = ''; 1 < t; ) 1 & t && (n += e), (t >>= 1), (e += e);
      return n + e;
    },
    jt = mt.defaults,
    Ht = Ct,
    qt = It,
    Ut = Lt,
    Bt = I;
  function Zt(e, t, n) {
    var r = t.href,
      i = t.title ? Ut(t.title) : null,
      t = e[1].replace(/\\([\[\]])/g, '$1');
    return '!' !== e[0].charAt(0)
      ? {type: 'link', raw: n, href: r, title: i, text: t}
      : {type: 'image', raw: n, href: r, title: i, text: Ut(t)};
  }
  var Gt = (function () {
      function e(e) {
        this.options = e || jt;
      }
      return (
        (e.prototype.space = function (e) {
          e = this.rules.block.newline.exec(e);
          if (e) return 1 < e[0].length ? {type: 'space', raw: e[0]} : {raw: '\n'};
        }),
        (e.prototype.code = function (e, t) {
          e = this.rules.block.code.exec(e);
          if (e) {
            t = t[t.length - 1];
            if (t && 'paragraph' === t.type) return {raw: e[0], text: e[0].trimRight()};
            t = e[0].replace(/^ {1,4}/gm, '');
            return {type: 'code', raw: e[0], codeBlockStyle: 'indented', text: this.options.pedantic ? t : Ht(t, '\n')};
          }
        }),
        (e.prototype.fences = function (e) {
          var t = this.rules.block.fences.exec(e);
          if (t) {
            var n = t[0],
              e = (function (e, t) {
                if (null === (e = e.match(/^(\s+)(?:```)/))) return t;
                var n = e[1];
                return t
                  .split('\n')
                  .map(function (e) {
                    var t = e.match(/^\s+/);
                    return null !== t && t[0].length >= n.length ? e.slice(n.length) : e;
                  })
                  .join('\n');
              })(n, t[3] || '');
            return {type: 'code', raw: n, lang: t[2] ? t[2].trim() : t[2], text: e};
          }
        }),
        (e.prototype.heading = function (e) {
          var t = this.rules.block.heading.exec(e);
          if (t) {
            var n = t[2].trim();
            return (
              /#$/.test(n) && ((e = Ht(n, '#')), (!this.options.pedantic && e && !/ $/.test(e)) || (n = e.trim())),
              {type: 'heading', raw: t[0], depth: t[1].length, text: n}
            );
          }
        }),
        (e.prototype.nptable = function (e) {
          e = this.rules.block.nptable.exec(e);
          if (e) {
            var t = {
              type: 'table',
              header: qt(e[1].replace(/^ *| *\| *$/g, '')),
              align: e[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
              cells: e[3] ? e[3].replace(/\n$/, '').split('\n') : [],
              raw: e[0]
            };
            if (t.header.length === t.align.length) {
              for (var n = t.align.length, r = 0; r < n; r++)
                /^ *-+: *$/.test(t.align[r])
                  ? (t.align[r] = 'right')
                  : /^ *:-+: *$/.test(t.align[r])
                  ? (t.align[r] = 'center')
                  : /^ *:-+ *$/.test(t.align[r])
                  ? (t.align[r] = 'left')
                  : (t.align[r] = null);
              for (n = t.cells.length, r = 0; r < n; r++) t.cells[r] = qt(t.cells[r], t.header.length);
              return t;
            }
          }
        }),
        (e.prototype.hr = function (e) {
          e = this.rules.block.hr.exec(e);
          if (e) return {type: 'hr', raw: e[0]};
        }),
        (e.prototype.blockquote = function (e) {
          var t = this.rules.block.blockquote.exec(e);
          if (t) {
            e = t[0].replace(/^ *> ?/gm, '');
            return {type: 'blockquote', raw: t[0], text: e};
          }
        }),
        (e.prototype.list = function (e) {
          e = this.rules.block.list.exec(e);
          if (e) {
            for (
              var t,
                n,
                r,
                i,
                o,
                a = e[0],
                s = e[2],
                l = 1 < s.length,
                c = {type: 'list', raw: a, ordered: l, start: l ? +s.slice(0, -1) : '', loose: !1, items: []},
                u = e[0].match(this.rules.block.item),
                p = !1,
                h = u.length,
                d = this.rules.block.listItemStart.exec(u[0]),
                f = 0;
              f < h;
              f++
            ) {
              if (((a = t = u[f]), f !== h - 1)) {
                if (
                  ((r = this.rules.block.listItemStart.exec(u[f + 1])),
                  this.options.pedantic ? r[1].length > d[1].length : r[1].length > d[0].length || 3 < r[1].length)
                ) {
                  u.splice(f, 2, u[f] + '\n' + u[f + 1]), f--, h--;
                  continue;
                }
                (!this.options.pedantic || this.options.smartLists
                  ? r[2][r[2].length - 1] !== s[s.length - 1]
                  : l == (1 === r[2].length)) &&
                  ((n = u.slice(f + 1).join('\n')), (c.raw = c.raw.substring(0, c.raw.length - n.length)), (f = h - 1)),
                  (d = r);
              }
              (r = t.length),
                ~(t = t.replace(/^ *([*+-]|\d+[.)]) ?/, '')).indexOf('\n ') &&
                  ((r -= t.length),
                  (t = this.options.pedantic
                    ? t.replace(/^ {1,4}/gm, '')
                    : t.replace(new RegExp('^ {1,' + r + '}', 'gm'), ''))),
                (r = p || /\n\n(?!\s*$)/.test(t)),
                f !== h - 1 && ((p = '\n' === t.charAt(t.length - 1)), (r = r || p)),
                r && (c.loose = !0),
                this.options.gfm &&
                  ((o = void 0),
                  (i = /^\[[ xX]\] /.test(t)) && ((o = ' ' !== t[1]), (t = t.replace(/^\[[ xX]\] +/, '')))),
                c.items.push({type: 'list_item', raw: a, task: i, checked: o, loose: r, text: t});
            }
            return c;
          }
        }),
        (e.prototype.html = function (e) {
          e = this.rules.block.html.exec(e);
          if (e)
            return {
              type: this.options.sanitize ? 'paragraph' : 'html',
              raw: e[0],
              pre: !this.options.sanitizer && ('pre' === e[1] || 'script' === e[1] || 'style' === e[1]),
              text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(e[0]) : Ut(e[0])) : e[0]
            };
        }),
        (e.prototype.def = function (e) {
          e = this.rules.block.def.exec(e);
          if (e)
            return (
              e[3] && (e[3] = e[3].substring(1, e[3].length - 1)),
              {tag: e[1].toLowerCase().replace(/\s+/g, ' '), raw: e[0], href: e[2], title: e[3]}
            );
        }),
        (e.prototype.table = function (e) {
          e = this.rules.block.table.exec(e);
          if (e) {
            var t = {
              type: 'table',
              header: qt(e[1].replace(/^ *| *\| *$/g, '')),
              align: e[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
              cells: e[3] ? e[3].replace(/\n$/, '').split('\n') : []
            };
            if (t.header.length === t.align.length) {
              t.raw = e[0];
              for (var n = t.align.length, r = 0; r < n; r++)
                /^ *-+: *$/.test(t.align[r])
                  ? (t.align[r] = 'right')
                  : /^ *:-+: *$/.test(t.align[r])
                  ? (t.align[r] = 'center')
                  : /^ *:-+ *$/.test(t.align[r])
                  ? (t.align[r] = 'left')
                  : (t.align[r] = null);
              for (n = t.cells.length, r = 0; r < n; r++)
                t.cells[r] = qt(t.cells[r].replace(/^ *\| *| *\| *$/g, ''), t.header.length);
              return t;
            }
          }
        }),
        (e.prototype.lheading = function (e) {
          e = this.rules.block.lheading.exec(e);
          if (e) return {type: 'heading', raw: e[0], depth: '=' === e[2].charAt(0) ? 1 : 2, text: e[1]};
        }),
        (e.prototype.paragraph = function (e) {
          e = this.rules.block.paragraph.exec(e);
          if (e)
            return {
              type: 'paragraph',
              raw: e[0],
              text: '\n' === e[1].charAt(e[1].length - 1) ? e[1].slice(0, -1) : e[1]
            };
        }),
        (e.prototype.text = function (e, t) {
          e = this.rules.block.text.exec(e);
          if (e) {
            t = t[t.length - 1];
            return t && 'text' === t.type ? {raw: e[0], text: e[0]} : {type: 'text', raw: e[0], text: e[0]};
          }
        }),
        (e.prototype.escape = function (e) {
          e = this.rules.inline.escape.exec(e);
          if (e) return {type: 'escape', raw: e[0], text: Ut(e[1])};
        }),
        (e.prototype.tag = function (e, t, n) {
          e = this.rules.inline.tag.exec(e);
          if (e)
            return (
              !t && /^<a /i.test(e[0]) ? (t = !0) : t && /^<\/a>/i.test(e[0]) && (t = !1),
              !n && /^<(pre|code|kbd|script)(\s|>)/i.test(e[0])
                ? (n = !0)
                : n && /^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0]) && (n = !1),
              {
                type: this.options.sanitize ? 'text' : 'html',
                raw: e[0],
                inLink: t,
                inRawBlock: n,
                text: this.options.sanitize ? (this.options.sanitizer ? this.options.sanitizer(e[0]) : Ut(e[0])) : e[0]
              }
            );
        }),
        (e.prototype.link = function (e) {
          var t = this.rules.inline.link.exec(e);
          if (t) {
            var n = t[2].trim();
            if (!this.options.pedantic && /^</.test(n)) {
              if (!/>$/.test(n)) return;
              e = Ht(n.slice(0, -1), '\\');
              if ((n.length - e.length) % 2 == 0) return;
            } else {
              var r = Bt(t[2], '()');
              -1 < r &&
                ((o = (0 === t[0].indexOf('!') ? 5 : 4) + t[1].length + r),
                (t[2] = t[2].substring(0, r)),
                (t[0] = t[0].substring(0, o).trim()),
                (t[3] = ''));
            }
            var i,
              r = t[2],
              o = '';
            return (
              this.options.pedantic
                ? ((i = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r)), i && ((r = i[1]), (o = i[3])))
                : (o = t[3] ? t[3].slice(1, -1) : ''),
              (r = r.trim()),
              /^</.test(r) && (r = this.options.pedantic && !/>$/.test(n) ? r.slice(1) : r.slice(1, -1)),
              Zt(
                t,
                {
                  href: r ? r.replace(this.rules.inline._escapes, '$1') : r,
                  title: o ? o.replace(this.rules.inline._escapes, '$1') : o
                },
                t[0]
              )
            );
          }
        }),
        (e.prototype.reflink = function (e, t) {
          if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) {
            e = (n[2] || n[1]).replace(/\s+/g, ' ');
            if ((e = t[e.toLowerCase()]) && e.href) return Zt(n, e, n[0]);
            var n = n[0].charAt(0);
            return {type: 'text', raw: n, text: n};
          }
        }),
        (e.prototype.strong = function (e, t, n) {
          void 0 === n && (n = '');
          var r = this.rules.inline.strong.start.exec(e);
          if (r && (!r[1] || (r[1] && ('' === n || this.rules.inline.punctuation.exec(n))))) {
            t = t.slice(-1 * e.length);
            var i,
              o = '**' === r[0] ? this.rules.inline.strong.endAst : this.rules.inline.strong.endUnd;
            for (o.lastIndex = 0; null != (r = o.exec(t)); )
              if ((i = this.rules.inline.strong.middle.exec(t.slice(0, r.index + 3))))
                return {type: 'strong', raw: e.slice(0, i[0].length), text: e.slice(2, i[0].length - 2)};
          }
        }),
        (e.prototype.em = function (e, t, n) {
          void 0 === n && (n = '');
          var r = this.rules.inline.em.start.exec(e);
          if (r && (!r[1] || (r[1] && ('' === n || this.rules.inline.punctuation.exec(n))))) {
            t = t.slice(-1 * e.length);
            var i,
              o = '*' === r[0] ? this.rules.inline.em.endAst : this.rules.inline.em.endUnd;
            for (o.lastIndex = 0; null != (r = o.exec(t)); )
              if ((i = this.rules.inline.em.middle.exec(t.slice(0, r.index + 2))))
                return {type: 'em', raw: e.slice(0, i[0].length), text: e.slice(1, i[0].length - 1)};
          }
        }),
        (e.prototype.codespan = function (e) {
          var t = this.rules.inline.code.exec(e);
          if (t) {
            var n = t[2].replace(/\n/g, ' '),
              r = /[^ ]/.test(n),
              e = /^ /.test(n) && / $/.test(n);
            return (
              r && e && (n = n.substring(1, n.length - 1)), (n = Ut(n, !0)), {type: 'codespan', raw: t[0], text: n}
            );
          }
        }),
        (e.prototype.br = function (e) {
          e = this.rules.inline.br.exec(e);
          if (e) return {type: 'br', raw: e[0]};
        }),
        (e.prototype.del = function (e) {
          e = this.rules.inline.del.exec(e);
          if (e) return {type: 'del', raw: e[0], text: e[2]};
        }),
        (e.prototype.autolink = function (e, t) {
          e = this.rules.inline.autolink.exec(e);
          if (e) {
            var n,
              t = '@' === e[2] ? 'mailto:' + (n = Ut(this.options.mangle ? t(e[1]) : e[1])) : (n = Ut(e[1]));
            return {type: 'link', raw: e[0], text: n, href: t, tokens: [{type: 'text', raw: n, text: n}]};
          }
        }),
        (e.prototype.url = function (e, t) {
          var n, r, i, o;
          if ((n = this.rules.inline.url.exec(e))) {
            if ('@' === n[2]) i = 'mailto:' + (r = Ut(this.options.mangle ? t(n[0]) : n[0]));
            else {
              for (; (o = n[0]), (n[0] = this.rules.inline._backpedal.exec(n[0])[0]), o !== n[0]; );
              (r = Ut(n[0])), (i = 'www.' === n[1] ? 'http://' + r : r);
            }
            return {type: 'link', raw: n[0], text: r, href: i, tokens: [{type: 'text', raw: r, text: r}]};
          }
        }),
        (e.prototype.inlineText = function (e, t, n) {
          e = this.rules.inline.text.exec(e);
          if (e) {
            n = t
              ? this.options.sanitize
                ? this.options.sanitizer
                  ? this.options.sanitizer(e[0])
                  : Ut(e[0])
                : e[0]
              : Ut(this.options.smartypants ? n(e[0]) : e[0]);
            return {type: 'text', raw: e[0], text: n};
          }
        }),
        e
      );
    })(),
    It = Dt,
    I = Nt,
    Dt = Pt,
    Nt = {
      newline: /^(?: *(?:\n|$))+/,
      code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,
      fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,
      hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
      heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,
      blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
      list: /^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,
      html: '^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|</(?!script|pre|style)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))',
      def: /^ {0,3}\[(label)\]: *\n? *<?([^\s>]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,
      nptable: It,
      table: It,
      lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,
      _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,
      text: /^[^\n]+/,
      _label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,
      _title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/
    };
  (Nt.def = I(Nt.def).replace('label', Nt._label).replace('title', Nt._title).getRegex()),
    (Nt.bullet = /(?:[*+-]|\d{1,9}[.)])/),
    (Nt.item = /^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/),
    (Nt.item = I(Nt.item, 'gm').replace(/bull/g, Nt.bullet).getRegex()),
    (Nt.listItemStart = I(/^( *)(bull)/)
      .replace('bull', Nt.bullet)
      .getRegex()),
    (Nt.list = I(Nt.list)
      .replace(/bull/g, Nt.bullet)
      .replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))')
      .replace('def', '\\n+(?=' + Nt.def.source + ')')
      .getRegex()),
    (Nt._tag =
      'address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul'),
    (Nt._comment = /<!--(?!-?>)[\s\S]*?(?:-->|$)/),
    (Nt.html = I(Nt.html, 'i')
      .replace('comment', Nt._comment)
      .replace('tag', Nt._tag)
      .replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/)
      .getRegex()),
    (Nt.paragraph = I(Nt._paragraph)
      .replace('hr', Nt.hr)
      .replace('heading', ' {0,3}#{1,6} ')
      .replace('|lheading', '')
      .replace('blockquote', ' {0,3}>')
      .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
      .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
      .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)')
      .replace('tag', Nt._tag)
      .getRegex()),
    (Nt.blockquote = I(Nt.blockquote).replace('paragraph', Nt.paragraph).getRegex()),
    (Nt.normal = Dt({}, Nt)),
    (Nt.gfm = Dt({}, Nt.normal, {
      nptable:
        '^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)',
      table:
        '^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)'
    })),
    (Nt.gfm.nptable = I(Nt.gfm.nptable)
      .replace('hr', Nt.hr)
      .replace('heading', ' {0,3}#{1,6} ')
      .replace('blockquote', ' {0,3}>')
      .replace('code', ' {4}[^\\n]')
      .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
      .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
      .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)')
      .replace('tag', Nt._tag)
      .getRegex()),
    (Nt.gfm.table = I(Nt.gfm.table)
      .replace('hr', Nt.hr)
      .replace('heading', ' {0,3}#{1,6} ')
      .replace('blockquote', ' {0,3}>')
      .replace('code', ' {4}[^\\n]')
      .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
      .replace('list', ' {0,3}(?:[*+-]|1[.)]) ')
      .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|!--)')
      .replace('tag', Nt._tag)
      .getRegex()),
    (Nt.pedantic = Dt({}, Nt.normal, {
      html: I(
        '^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))'
      )
        .replace('comment', Nt._comment)
        .replace(
          /tag/g,
          '(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b'
        )
        .getRegex(),
      def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
      heading: /^(#{1,6})(.*)(?:\n+|$)/,
      fences: It,
      paragraph: I(Nt.normal._paragraph)
        .replace('hr', Nt.hr)
        .replace('heading', ' *#{1,6} *[^\n]')
        .replace('lheading', Nt.lheading)
        .replace('blockquote', ' {0,3}>')
        .replace('|fences', '')
        .replace('|list', '')
        .replace('|html', '')
        .getRegex()
    }));
  It = {
    escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,
    autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/,
    url: It,
    tag: '^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>',
    link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,
    reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,
    nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,
    reflinkSearch: 'reflink|nolink(?!\\()',
    strong: {
      start: /^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,
      middle:
        /^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,
      endAst: /[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,
      endUnd: /[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/
    },
    em: {
      start: /^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,
      middle:
        /^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,
      endAst: /[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,
      endUnd: /[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/
    },
    code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,
    br: /^( {2,}|\\)\n(?!\s*$)/,
    del: It,
    text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*]|\b_|$)|[^ ](?= {2,}\n)))/,
    punctuation: /^([\s*punctuation])/,
    _punctuation: '!"#$%&\'()+\\-.,/:;<=>?@\\[\\]`^{|}~'
  };
  (It.punctuation = I(It.punctuation)
    .replace(/punctuation/g, It._punctuation)
    .getRegex()),
    (It._blockSkip = '\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>'),
    (It._overlapSkip = '__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*'),
    (It._comment = I(Nt._comment).replace('(?:--\x3e|$)', '--\x3e').getRegex()),
    (It.em.start = I(It.em.start)
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.em.middle = I(It.em.middle)
      .replace(/punctuation/g, It._punctuation)
      .replace(/overlapSkip/g, It._overlapSkip)
      .getRegex()),
    (It.em.endAst = I(It.em.endAst, 'g')
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.em.endUnd = I(It.em.endUnd, 'g')
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.strong.start = I(It.strong.start)
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.strong.middle = I(It.strong.middle)
      .replace(/punctuation/g, It._punctuation)
      .replace(/overlapSkip/g, It._overlapSkip)
      .getRegex()),
    (It.strong.endAst = I(It.strong.endAst, 'g')
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.strong.endUnd = I(It.strong.endUnd, 'g')
      .replace(/punctuation/g, It._punctuation)
      .getRegex()),
    (It.blockSkip = I(It._blockSkip, 'g').getRegex()),
    (It.overlapSkip = I(It._overlapSkip, 'g').getRegex()),
    (It._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g),
    (It._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/),
    (It._email =
      /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/),
    (It.autolink = I(It.autolink).replace('scheme', It._scheme).replace('email', It._email).getRegex()),
    (It._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/),
    (It.tag = I(It.tag).replace('comment', It._comment).replace('attribute', It._attribute).getRegex()),
    (It._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/),
    (It._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/),
    (It._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/),
    (It.link = I(It.link).replace('label', It._label).replace('href', It._href).replace('title', It._title).getRegex()),
    (It.reflink = I(It.reflink).replace('label', It._label).getRegex()),
    (It.reflinkSearch = I(It.reflinkSearch, 'g')
      .replace('reflink', It.reflink)
      .replace('nolink', It.nolink)
      .getRegex()),
    (It.normal = Dt({}, It)),
    (It.pedantic = Dt({}, It.normal, {
      strong: {
        start: /^__|\*\*/,
        middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
        endAst: /\*\*(?!\*)/g,
        endUnd: /__(?!_)/g
      },
      em: {
        start: /^_|\*/,
        middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,
        endAst: /\*(?!\*)/g,
        endUnd: /_(?!_)/g
      },
      link: I(/^!?\[(label)\]\((.*?)\)/)
        .replace('label', It._label)
        .getRegex(),
      reflink: I(/^!?\[(label)\]\s*\[([^\]]*)\]/)
        .replace('label', It._label)
        .getRegex()
    })),
    (It.gfm = Dt({}, It.normal, {
      escape: I(It.escape).replace('])', '~|])').getRegex(),
      _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,
      url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,
      _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,
      del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
      text: /^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*~]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))/
    })),
    (It.gfm.url = I(It.gfm.url, 'i').replace('email', It.gfm._extended_email).getRegex()),
    (It.breaks = Dt({}, It.gfm, {
      br: I(It.br).replace('{2,}', '*').getRegex(),
      text: I(It.gfm.text)
        .replace('\\b_', '\\b_| {2,}\\n')
        .replace(/\{2,\}/g, '*')
        .getRegex()
    }));
  var It = {block: Nt, inline: It},
    Wt = mt.defaults,
    Vt = It.block,
    Yt = It.inline,
    Xt = Q;
  function Kt(e) {
    return e
      .replace(/---/g, '—')
      .replace(/--/g, '–')
      .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1‘')
      .replace(/'/g, '’')
      .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1“')
      .replace(/"/g, '”')
      .replace(/\.{3}/g, '…');
  }
  function Qt(e) {
    for (var t, n = '', r = e.length, i = 0; i < r; i++)
      (t = e.charCodeAt(i)), 0.5 < Math.random() && (t = 'x' + t.toString(16)), (n += '&#' + t + ';');
    return n;
  }
  var Jt = (function () {
      function n(e) {
        (this.tokens = []),
          (this.tokens.links = Object.create(null)),
          (this.options = e || Wt),
          (this.options.tokenizer = this.options.tokenizer || new Gt()),
          (this.tokenizer = this.options.tokenizer),
          (this.tokenizer.options = this.options);
        e = {block: Vt.normal, inline: Yt.normal};
        this.options.pedantic
          ? ((e.block = Vt.pedantic), (e.inline = Yt.pedantic))
          : this.options.gfm &&
            ((e.block = Vt.gfm), this.options.breaks ? (e.inline = Yt.breaks) : (e.inline = Yt.gfm)),
          (this.tokenizer.rules = e);
      }
      var e = {rules: {configurable: !0}};
      return (
        (e.rules.get = function () {
          return {block: Vt, inline: Yt};
        }),
        (n.lex = function (e, t) {
          return new n(t).lex(e);
        }),
        (n.lexInline = function (e, t) {
          return new n(t).inlineTokens(e);
        }),
        (n.prototype.lex = function (e) {
          return (
            (e = e.replace(/\r\n|\r/g, '\n').replace(/\t/g, '    ')),
            this.blockTokens(e, this.tokens, !0),
            this.inline(this.tokens),
            this.tokens
          );
        }),
        (n.prototype.blockTokens = function (e, t, n) {
          var r, i, o, a;
          for (
            void 0 === t && (t = []), void 0 === n && (n = !0), this.options.pedantic && (e = e.replace(/^ +$/gm, ''));
            e;

          )
            if ((r = this.tokenizer.space(e))) (e = e.substring(r.raw.length)), r.type && t.push(r);
            else if ((r = this.tokenizer.code(e, t)))
              (e = e.substring(r.raw.length)),
                r.type ? t.push(r) : (((a = t[t.length - 1]).raw += '\n' + r.raw), (a.text += '\n' + r.text));
            else if ((r = this.tokenizer.fences(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.heading(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.nptable(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.hr(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.blockquote(e)))
              (e = e.substring(r.raw.length)), (r.tokens = this.blockTokens(r.text, [], n)), t.push(r);
            else if ((r = this.tokenizer.list(e))) {
              for (e = e.substring(r.raw.length), o = r.items.length, i = 0; i < o; i++)
                r.items[i].tokens = this.blockTokens(r.items[i].text, [], !1);
              t.push(r);
            } else if ((r = this.tokenizer.html(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if (n && (r = this.tokenizer.def(e)))
              (e = e.substring(r.raw.length)),
                this.tokens.links[r.tag] || (this.tokens.links[r.tag] = {href: r.href, title: r.title});
            else if ((r = this.tokenizer.table(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.lheading(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if (n && (r = this.tokenizer.paragraph(e))) (e = e.substring(r.raw.length)), t.push(r);
            else if ((r = this.tokenizer.text(e, t)))
              (e = e.substring(r.raw.length)),
                r.type ? t.push(r) : (((a = t[t.length - 1]).raw += '\n' + r.raw), (a.text += '\n' + r.text));
            else if (e) {
              var s = 'Infinite loop on byte: ' + e.charCodeAt(0);
              if (this.options.silent) {
                console.error(s);
                break;
              }
              throw new Error(s);
            }
          return t;
        }),
        (n.prototype.inline = function (e) {
          for (var t, n, r, i, o, a = e.length, s = 0; s < a; s++)
            switch ((o = e[s]).type) {
              case 'paragraph':
              case 'text':
              case 'heading':
                (o.tokens = []), this.inlineTokens(o.text, o.tokens);
                break;
              case 'table':
                for (o.tokens = {header: [], cells: []}, r = o.header.length, t = 0; t < r; t++)
                  (o.tokens.header[t] = []), this.inlineTokens(o.header[t], o.tokens.header[t]);
                for (r = o.cells.length, t = 0; t < r; t++)
                  for (i = o.cells[t], o.tokens.cells[t] = [], n = 0; n < i.length; n++)
                    (o.tokens.cells[t][n] = []), this.inlineTokens(i[n], o.tokens.cells[t][n]);
                break;
              case 'blockquote':
                this.inline(o.tokens);
                break;
              case 'list':
                for (r = o.items.length, t = 0; t < r; t++) this.inline(o.items[t].tokens);
            }
          return e;
        }),
        (n.prototype.inlineTokens = function (e, t, n, r) {
          var i;
          void 0 === t && (t = []), void 0 === n && (n = !1), void 0 === r && (r = !1);
          var o,
            a,
            s,
            l = e;
          if (this.tokens.links) {
            var c = Object.keys(this.tokens.links);
            if (0 < c.length)
              for (; null != (o = this.tokenizer.rules.inline.reflinkSearch.exec(l)); )
                c.includes(o[0].slice(o[0].lastIndexOf('[') + 1, -1)) &&
                  (l =
                    l.slice(0, o.index) +
                    '[' +
                    Xt('a', o[0].length - 2) +
                    ']' +
                    l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));
          }
          for (; null != (o = this.tokenizer.rules.inline.blockSkip.exec(l)); )
            l =
              l.slice(0, o.index) +
              '[' +
              Xt('a', o[0].length - 2) +
              ']' +
              l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
          for (; e; )
            if ((a || (s = ''), (a = !1), (i = this.tokenizer.escape(e)))) (e = e.substring(i.raw.length)), t.push(i);
            else if ((i = this.tokenizer.tag(e, n, r)))
              (e = e.substring(i.raw.length)), (n = i.inLink), (r = i.inRawBlock), t.push(i);
            else if ((i = this.tokenizer.link(e)))
              (e = e.substring(i.raw.length)),
                'link' === i.type && (i.tokens = this.inlineTokens(i.text, [], !0, r)),
                t.push(i);
            else if ((i = this.tokenizer.reflink(e, this.tokens.links)))
              (e = e.substring(i.raw.length)),
                'link' === i.type && (i.tokens = this.inlineTokens(i.text, [], !0, r)),
                t.push(i);
            else if ((i = this.tokenizer.strong(e, l, s)))
              (e = e.substring(i.raw.length)), (i.tokens = this.inlineTokens(i.text, [], n, r)), t.push(i);
            else if ((i = this.tokenizer.em(e, l, s)))
              (e = e.substring(i.raw.length)), (i.tokens = this.inlineTokens(i.text, [], n, r)), t.push(i);
            else if ((i = this.tokenizer.codespan(e))) (e = e.substring(i.raw.length)), t.push(i);
            else if ((i = this.tokenizer.br(e))) (e = e.substring(i.raw.length)), t.push(i);
            else if ((i = this.tokenizer.del(e)))
              (e = e.substring(i.raw.length)), (i.tokens = this.inlineTokens(i.text, [], n, r)), t.push(i);
            else if ((i = this.tokenizer.autolink(e, Qt))) (e = e.substring(i.raw.length)), t.push(i);
            else if (n || !(i = this.tokenizer.url(e, Qt))) {
              if ((i = this.tokenizer.inlineText(e, r, Kt)))
                (e = e.substring(i.raw.length)), (s = i.raw.slice(-1)), (a = !0), t.push(i);
              else if (e) {
                var u = 'Infinite loop on byte: ' + e.charCodeAt(0);
                if (this.options.silent) {
                  console.error(u);
                  break;
                }
                throw new Error(u);
              }
            } else (e = e.substring(i.raw.length)), t.push(i);
          return t;
        }),
        Object.defineProperties(n, e),
        n
      );
    })(),
    en = mt.defaults,
    tn = Mt,
    nn = Lt,
    rn = (function () {
      function e(e) {
        this.options = e || en;
      }
      return (
        (e.prototype.code = function (e, t, n) {
          var r = (t || '').match(/\S*/)[0];
          return (
            !this.options.highlight || (null != (t = this.options.highlight(e, r)) && t !== e && ((n = !0), (e = t))),
            (e = e.replace(/\n$/, '') + '\n'),
            r
              ? '<pre><code class="' +
                this.options.langPrefix +
                nn(r, !0) +
                '">' +
                (n ? e : nn(e, !0)) +
                '</code></pre>\n'
              : '<pre><code>' + (n ? e : nn(e, !0)) + '</code></pre>\n'
          );
        }),
        (e.prototype.blockquote = function (e) {
          return '<blockquote>\n' + e + '</blockquote>\n';
        }),
        (e.prototype.html = function (e) {
          return e;
        }),
        (e.prototype.heading = function (e, t, n, r) {
          return this.options.headerIds
            ? '<h' + t + ' id="' + this.options.headerPrefix + r.slug(n) + '">' + e + '</h' + t + '>\n'
            : '<h' + t + '>' + e + '</h' + t + '>\n';
        }),
        (e.prototype.hr = function () {
          return this.options.xhtml ? '<hr/>\n' : '<hr>\n';
        }),
        (e.prototype.list = function (e, t, n) {
          var r = t ? 'ol' : 'ul';
          return '<' + r + (t && 1 !== n ? ' start="' + n + '"' : '') + '>\n' + e + '</' + r + '>\n';
        }),
        (e.prototype.listitem = function (e) {
          return '<li>' + e + '</li>\n';
        }),
        (e.prototype.checkbox = function (e) {
          return (
            '<input ' +
            (e ? 'checked="" ' : '') +
            'disabled="" type="checkbox"' +
            (this.options.xhtml ? ' /' : '') +
            '> '
          );
        }),
        (e.prototype.paragraph = function (e) {
          return '<p>' + e + '</p>\n';
        }),
        (e.prototype.table = function (e, t) {
          return '<table>\n<thead>\n' + e + '</thead>\n' + (t = t && '<tbody>' + t + '</tbody>') + '</table>\n';
        }),
        (e.prototype.tablerow = function (e) {
          return '<tr>\n' + e + '</tr>\n';
        }),
        (e.prototype.tablecell = function (e, t) {
          var n = t.header ? 'th' : 'td';
          return (t.align ? '<' + n + ' align="' + t.align + '">' : '<' + n + '>') + e + '</' + n + '>\n';
        }),
        (e.prototype.strong = function (e) {
          return '<strong>' + e + '</strong>';
        }),
        (e.prototype.em = function (e) {
          return '<em>' + e + '</em>';
        }),
        (e.prototype.codespan = function (e) {
          return '<code>' + e + '</code>';
        }),
        (e.prototype.br = function () {
          return this.options.xhtml ? '<br/>' : '<br>';
        }),
        (e.prototype.del = function (e) {
          return '<del>' + e + '</del>';
        }),
        (e.prototype.link = function (e, t, n) {
          if (null === (e = tn(this.options.sanitize, this.options.baseUrl, e))) return n;
          e = '<a href="' + nn(e) + '"';
          return t && (e += ' title="' + t + '"'), (e += '>' + n + '</a>');
        }),
        (e.prototype.image = function (e, t, n) {
          if (null === (e = tn(this.options.sanitize, this.options.baseUrl, e))) return n;
          n = '<img src="' + e + '" alt="' + n + '"';
          return t && (n += ' title="' + t + '"'), (n += this.options.xhtml ? '/>' : '>');
        }),
        (e.prototype.text = function (e) {
          return e;
        }),
        e
      );
    })(),
    on = (function () {
      function e() {}
      return (
        (e.prototype.strong = function (e) {
          return e;
        }),
        (e.prototype.em = function (e) {
          return e;
        }),
        (e.prototype.codespan = function (e) {
          return e;
        }),
        (e.prototype.del = function (e) {
          return e;
        }),
        (e.prototype.html = function (e) {
          return e;
        }),
        (e.prototype.text = function (e) {
          return e;
        }),
        (e.prototype.link = function (e, t, n) {
          return '' + n;
        }),
        (e.prototype.image = function (e, t, n) {
          return '' + n;
        }),
        (e.prototype.br = function () {
          return '';
        }),
        e
      );
    })(),
    an = (function () {
      function e() {
        this.seen = {};
      }
      return (
        (e.prototype.serialize = function (e) {
          return e
            .toLowerCase()
            .trim()
            .replace(/<[!\/a-z].*?>/gi, '')
            .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '')
            .replace(/\s/g, '-');
        }),
        (e.prototype.getNextSafeSlug = function (e, t) {
          var n = e,
            r = 0;
          if (this.seen.hasOwnProperty(n)) for (r = this.seen[e]; (n = e + '-' + ++r), this.seen.hasOwnProperty(n); );
          return t || ((this.seen[e] = r), (this.seen[n] = 0)), n;
        }),
        (e.prototype.slug = function (e, t) {
          void 0 === t && (t = {});
          var n = this.serialize(e);
          return this.getNextSafeSlug(n, t.dryrun);
        }),
        e
      );
    })(),
    sn = mt.defaults,
    ln = zt,
    cn = (function () {
      function n(e) {
        (this.options = e || sn),
          (this.options.renderer = this.options.renderer || new rn()),
          (this.renderer = this.options.renderer),
          (this.renderer.options = this.options),
          (this.textRenderer = new on()),
          (this.slugger = new an());
      }
      return (
        (n.parse = function (e, t) {
          return new n(t).parse(e);
        }),
        (n.parseInline = function (e, t) {
          return new n(t).parseInline(e);
        }),
        (n.prototype.parse = function (e, t) {
          void 0 === t && (t = !0);
          for (var n, r, i, o, a, s, l, c, u, p, h, d, f, g, m, v = '', y = e.length, b = 0; b < y; b++)
            switch ((c = e[b]).type) {
              case 'space':
                continue;
              case 'hr':
                v += this.renderer.hr();
                continue;
              case 'heading':
                v += this.renderer.heading(
                  this.parseInline(c.tokens),
                  c.depth,
                  ln(this.parseInline(c.tokens, this.textRenderer)),
                  this.slugger
                );
                continue;
              case 'code':
                v += this.renderer.code(c.text, c.lang, c.escaped);
                continue;
              case 'table':
                for (s = u = '', i = c.header.length, n = 0; n < i; n++)
                  s += this.renderer.tablecell(this.parseInline(c.tokens.header[n]), {header: !0, align: c.align[n]});
                for (u += this.renderer.tablerow(s), l = '', i = c.cells.length, n = 0; n < i; n++) {
                  for (s = '', o = (a = c.tokens.cells[n]).length, r = 0; r < o; r++)
                    s += this.renderer.tablecell(this.parseInline(a[r]), {header: !1, align: c.align[r]});
                  l += this.renderer.tablerow(s);
                }
                v += this.renderer.table(u, l);
                continue;
              case 'blockquote':
                (l = this.parse(c.tokens)), (v += this.renderer.blockquote(l));
                continue;
              case 'list':
                for (u = c.ordered, k = c.start, p = c.loose, i = c.items.length, l = '', n = 0; n < i; n++)
                  (f = (d = c.items[n]).checked),
                    (g = d.task),
                    (h = ''),
                    d.task &&
                      ((m = this.renderer.checkbox(f)),
                      p
                        ? 0 < d.tokens.length && 'text' === d.tokens[0].type
                          ? ((d.tokens[0].text = m + ' ' + d.tokens[0].text),
                            d.tokens[0].tokens &&
                              0 < d.tokens[0].tokens.length &&
                              'text' === d.tokens[0].tokens[0].type &&
                              (d.tokens[0].tokens[0].text = m + ' ' + d.tokens[0].tokens[0].text))
                          : d.tokens.unshift({type: 'text', text: m})
                        : (h += m)),
                    (h += this.parse(d.tokens, p)),
                    (l += this.renderer.listitem(h, g, f));
                v += this.renderer.list(l, u, k);
                continue;
              case 'html':
                v += this.renderer.html(c.text);
                continue;
              case 'paragraph':
                v += this.renderer.paragraph(this.parseInline(c.tokens));
                continue;
              case 'text':
                for (l = c.tokens ? this.parseInline(c.tokens) : c.text; b + 1 < y && 'text' === e[b + 1].type; )
                  l += '\n' + ((c = e[++b]).tokens ? this.parseInline(c.tokens) : c.text);
                v += t ? this.renderer.paragraph(l) : l;
                continue;
              default:
                var k = 'Token with "' + c.type + '" type was not found.';
                if (this.options.silent) return void console.error(k);
                throw new Error(k);
            }
          return v;
        }),
        (n.prototype.parseInline = function (e, t) {
          t = t || this.renderer;
          for (var n = '', r = e.length, i = 0; i < r; i++)
            switch ((o = e[i]).type) {
              case 'escape':
                n += t.text(o.text);
                break;
              case 'html':
                n += t.html(o.text);
                break;
              case 'link':
                n += t.link(o.href, o.title, this.parseInline(o.tokens, t));
                break;
              case 'image':
                n += t.image(o.href, o.title, o.text);
                break;
              case 'strong':
                n += t.strong(this.parseInline(o.tokens, t));
                break;
              case 'em':
                n += t.em(this.parseInline(o.tokens, t));
                break;
              case 'codespan':
                n += t.codespan(o.text);
                break;
              case 'br':
                n += t.br();
                break;
              case 'del':
                n += t.del(this.parseInline(o.tokens, t));
                break;
              case 'text':
                n += t.text(o.text);
                break;
              default:
                var o = 'Token with "' + o.type + '" type was not found.';
                if (this.options.silent) return void console.error(o);
                throw new Error(o);
            }
          return n;
        }),
        n
      );
    })(),
    un = Pt,
    pn = ee,
    hn = Lt,
    Lt = mt.getDefaults,
    dn = mt.changeDefaults,
    mt = mt.defaults;
  function fn(e, n, r) {
    if (null == e) throw new Error('marked(): input parameter is undefined or null');
    if ('string' != typeof e)
      throw new Error(
        'marked(): input parameter is of type ' + Object.prototype.toString.call(e) + ', string expected'
      );
    if (('function' == typeof n && ((r = n), (n = null)), (n = un({}, fn.defaults, n || {})), pn(n), r)) {
      var i,
        o = n.highlight;
      try {
        i = Jt.lex(e, n);
      } catch (e) {
        return r(e);
      }
      function a(t) {
        var e;
        if (!t)
          try {
            e = cn.parse(i, n);
          } catch (e) {
            t = e;
          }
        return (n.highlight = o), t ? r(t) : r(null, e);
      }
      if (!o || o.length < 3) return a();
      if ((delete n.highlight, !i.length)) return a();
      var s = 0;
      return (
        fn.walkTokens(i, function (n) {
          'code' === n.type &&
            (s++,
            setTimeout(function () {
              o(n.text, n.lang, function (e, t) {
                return e
                  ? a(e)
                  : (null != t && t !== n.text && ((n.text = t), (n.escaped = !0)), void (0 === --s && a()));
              });
            }, 0));
        }),
        void (0 === s && a())
      );
    }
    try {
      var t = Jt.lex(e, n);
      return n.walkTokens && fn.walkTokens(t, n.walkTokens), cn.parse(t, n);
    } catch (e) {
      if (((e.message += '\nPlease report this to https://github.com/markedjs/marked.'), n.silent))
        return '<p>An error occurred:</p><pre>' + hn(e.message + '', !0) + '</pre>';
      throw e;
    }
  }
  (fn.options = fn.setOptions =
    function (e) {
      return un(fn.defaults, e), dn(fn.defaults), fn;
    }),
    (fn.getDefaults = Lt),
    (fn.defaults = mt),
    (fn.use = function (o) {
      var t,
        e = un({}, o);
      if (o.renderer) {
        var n,
          a = fn.defaults.renderer || new rn();
        for (n in o.renderer)
          !(function (r) {
            var i = a[r];
            a[r] = function () {
              for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
              var n = o.renderer[r].apply(a, e);
              return !1 === n && (n = i.apply(a, e)), n;
            };
          })(n);
        e.renderer = a;
      }
      if (o.tokenizer) {
        var i,
          s = fn.defaults.tokenizer || new Gt();
        for (i in o.tokenizer)
          !(function () {
            var r = s[i];
            s[i] = function () {
              for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
              var n = o.tokenizer[i].apply(s, e);
              return !1 === n && (n = r.apply(s, e)), n;
            };
          })();
        e.tokenizer = s;
      }
      o.walkTokens &&
        ((t = fn.defaults.walkTokens),
        (e.walkTokens = function (e) {
          o.walkTokens(e), t && t(e);
        })),
        fn.setOptions(e);
    }),
    (fn.walkTokens = function (e, t) {
      for (var n = 0, r = e; n < r.length; n += 1) {
        var i = r[n];
        switch ((t(i), i.type)) {
          case 'table':
            for (var o = 0, a = i.tokens.header; o < a.length; o += 1) {
              var s = a[o];
              fn.walkTokens(s, t);
            }
            for (var l = 0, c = i.tokens.cells; l < c.length; l += 1)
              for (var u = 0, p = c[l]; u < p.length; u += 1) {
                var h = p[u];
                fn.walkTokens(h, t);
              }
            break;
          case 'list':
            fn.walkTokens(i.items, t);
            break;
          default:
            i.tokens && fn.walkTokens(i.tokens, t);
        }
      }
    }),
    (fn.parseInline = function (e, t) {
      if (null == e) throw new Error('marked.parseInline(): input parameter is undefined or null');
      if ('string' != typeof e)
        throw new Error(
          'marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(e) + ', string expected'
        );
      (t = un({}, fn.defaults, t || {})), pn(t);
      try {
        var n = Jt.lexInline(e, t);
        return t.walkTokens && fn.walkTokens(n, t.walkTokens), cn.parseInline(n, t);
      } catch (e) {
        if (((e.message += '\nPlease report this to https://github.com/markedjs/marked.'), t.silent))
          return '<p>An error occurred:</p><pre>' + hn(e.message + '', !0) + '</pre>';
        throw e;
      }
    }),
    (fn.Parser = cn),
    (fn.parser = cn.parse),
    (fn.Renderer = rn),
    (fn.TextRenderer = on),
    (fn.Lexer = Jt),
    (fn.lexer = Jt.lex),
    (fn.Tokenizer = Gt),
    (fn.Slugger = an);
  var gn = (fn.parse = fn);
  function mn(e, n) {
    if ((void 0 === n && (n = '<ul class="app-sub-sidebar">{inner}</ul>'), !e || !e.length)) return '';
    var r = '';
    return (
      e.forEach(function (e) {
        var t = e.title.replace(/(<([^>]+)>)/g, '');
        (r += '<li><a class="section-link" href="' + e.slug + '" title="' + t + '">' + e.title + '</a></li>'),
          e.children && (r += mn(e.children, n));
      }),
      n.replace('{inner}', r)
    );
  }
  function vn(e, t) {
    return '<p class="' + e + '">' + t.slice(5).trim() + '</p>';
  }
  function yn(e, r) {
    var i = [],
      o = {};
    return (
      e.forEach(function (e) {
        var t = e.level || 1,
          n = t - 1;
        r < t || (o[n] ? (o[n].children = (o[n].children || []).concat(e)) : i.push(e), (o[t] = e));
      }),
      i
    );
  }
  var bn = {},
    kn = /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g;
  function wn(e) {
    return e.toLowerCase();
  }
  function xn(e) {
    if ('string' != typeof e) return '';
    var t = e
        .trim()
        .replace(/[A-Z]+/g, wn)
        .replace(/<[^>]+>/g, '')
        .replace(kn, '')
        .replace(/\s/g, '-')
        .replace(/-+/g, '-')
        .replace(/^(\d)/, '_$1'),
      e = bn[t],
      e = l.call(bn, t) ? e + 1 : 0;
    return (bn[t] = e) && (t = t + '-' + e), t;
  }
  function _n(e, t) {
    return (
      '<img class="emoji" src="https://github.githubassets.com/images/icons/emoji/' + t + '.png" alt="' + t + '" />'
    );
  }
  function Sn(e) {
    void 0 === e && (e = '');
    var r = {};
    return {
      str: (e =
        e &&
        e
          .replace(/^('|")/, '')
          .replace(/('|")$/, '')
          .replace(/(?:^|\s):([\w-]+:?)=?([\w-%]+)?/g, function (e, t, n) {
            return -1 === t.indexOf(':') ? ((r[t] = (n && n.replace(/&quot;/g, '')) || !0), '') : e;
          })
          .trim()),
      config: r
    };
  }
  function An(e) {
    return void 0 === e && (e = ''), e.replace(/(<\/?a.*?>)/gi, '');
  }
  xn.clear = function () {
    bn = {};
  };
  var Tn,
    En = ft(function (e) {
      var a,
        s,
        l,
        c,
        u,
        r,
        t,
        i = (function (l) {
          var c = /\blang(?:uage)?-([\w-]+)\b/i,
            t = 0,
            $ = {
              manual: l.Prism && l.Prism.manual,
              disableWorkerMessageHandler: l.Prism && l.Prism.disableWorkerMessageHandler,
              util: {
                encode: function e(t) {
                  return t instanceof F
                    ? new F(t.type, e(t.content), t.alias)
                    : Array.isArray(t)
                    ? t.map(e)
                    : t
                        .replace(/&/g, '&amp;')
                        .replace(/</g, '&lt;')
                        .replace(/\u00a0/g, ' ');
                },
                type: function (e) {
                  return Object.prototype.toString.call(e).slice(8, -1);
                },
                objId: function (e) {
                  return e.__id || Object.defineProperty(e, '__id', {value: ++t}), e.__id;
                },
                clone: function n(e, r) {
                  var i, t;
                  switch (((r = r || {}), $.util.type(e))) {
                    case 'Object':
                      if (((t = $.util.objId(e)), r[t])) return r[t];
                      for (var o in ((i = {}), (r[t] = i), e)) e.hasOwnProperty(o) && (i[o] = n(e[o], r));
                      return i;
                    case 'Array':
                      return ((t = $.util.objId(e)), r[t])
                        ? r[t]
                        : ((i = []),
                          (r[t] = i),
                          e.forEach(function (e, t) {
                            i[t] = n(e, r);
                          }),
                          i);
                    default:
                      return e;
                  }
                },
                getLanguage: function (e) {
                  for (; e && !c.test(e.className); ) e = e.parentElement;
                  return e ? (e.className.match(c) || [, 'none'])[1].toLowerCase() : 'none';
                },
                currentScript: function () {
                  if ('undefined' == typeof document) return null;
                  if ('currentScript' in document) return document.currentScript;
                  try {
                    throw new Error();
                  } catch (e) {
                    var t = (/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(e.stack) || [])[1];
                    if (t) {
                      var n,
                        r = document.getElementsByTagName('script');
                      for (n in r) if (r[n].src == t) return r[n];
                    }
                    return null;
                  }
                },
                isActive: function (e, t, n) {
                  for (var r = 'no-' + t; e; ) {
                    var i = e.classList;
                    if (i.contains(t)) return !0;
                    if (i.contains(r)) return !1;
                    e = e.parentElement;
                  }
                  return !!n;
                }
              },
              languages: {
                extend: function (e, t) {
                  var n,
                    r = $.util.clone($.languages[e]);
                  for (n in t) r[n] = t[n];
                  return r;
                },
                insertBefore: function (n, e, t, r) {
                  var i,
                    o = (r = r || $.languages)[n],
                    a = {};
                  for (i in o)
                    if (o.hasOwnProperty(i)) {
                      if (i == e) for (var s in t) t.hasOwnProperty(s) && (a[s] = t[s]);
                      t.hasOwnProperty(i) || (a[i] = o[i]);
                    }
                  var l = r[n];
                  return (
                    (r[n] = a),
                    $.languages.DFS($.languages, function (e, t) {
                      t === l && e != n && (this[e] = a);
                    }),
                    a
                  );
                },
                DFS: function e(t, n, r, i) {
                  i = i || {};
                  var o,
                    a,
                    s,
                    l = $.util.objId;
                  for (o in t) {
                    t.hasOwnProperty(o) &&
                      (n.call(t, o, t[o], r || o),
                      (a = t[o]),
                      'Object' !== (s = $.util.type(a)) || i[l(a)]
                        ? 'Array' !== s || i[l(a)] || ((i[l(a)] = !0), e(a, n, o, i))
                        : ((i[l(a)] = !0), e(a, n, null, i)));
                  }
                }
              },
              plugins: {},
              highlightAll: function (e, t) {
                $.highlightAllUnder(document, e, t);
              },
              highlightAllUnder: function (e, t, n) {
                var r = {
                  callback: n,
                  container: e,
                  selector:
                    'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
                };
                $.hooks.run('before-highlightall', r),
                  (r.elements = Array.prototype.slice.apply(r.container.querySelectorAll(r.selector))),
                  $.hooks.run('before-all-elements-highlight', r);
                for (var i, o = 0; (i = r.elements[o++]); ) $.highlightElement(i, !0 === t, r.callback);
              },
              highlightElement: function (e, t, n) {
                var r = $.util.getLanguage(e),
                  i = $.languages[r];
                e.className = e.className.replace(c, '').replace(/\s+/g, ' ') + ' language-' + r;
                var o = e.parentElement;
                o &&
                  'pre' === o.nodeName.toLowerCase() &&
                  (o.className = o.className.replace(c, '').replace(/\s+/g, ' ') + ' language-' + r);
                var a = {element: e, language: r, grammar: i, code: e.textContent};
                function s(e) {
                  (a.highlightedCode = e),
                    $.hooks.run('before-insert', a),
                    (a.element.innerHTML = a.highlightedCode),
                    $.hooks.run('after-highlight', a),
                    $.hooks.run('complete', a),
                    n && n.call(a.element);
                }
                if (($.hooks.run('before-sanity-check', a), !a.code))
                  return $.hooks.run('complete', a), void (n && n.call(a.element));
                $.hooks.run('before-highlight', a),
                  a.grammar
                    ? t && l.Worker
                      ? (((t = new Worker($.filename)).onmessage = function (e) {
                          s(e.data);
                        }),
                        t.postMessage(JSON.stringify({language: a.language, code: a.code, immediateClose: !0})))
                      : s($.highlight(a.code, a.grammar, a.language))
                    : s($.util.encode(a.code));
              },
              highlight: function (e, t, n) {
                n = {code: e, grammar: t, language: n};
                return (
                  $.hooks.run('before-tokenize', n),
                  (n.tokens = $.tokenize(n.code, n.grammar)),
                  $.hooks.run('after-tokenize', n),
                  F.stringify($.util.encode(n.tokens), n.language)
                );
              },
              tokenize: function (e, t) {
                var n = t.rest;
                if (n) {
                  for (var r in n) t[r] = n[r];
                  delete t.rest;
                }
                var i = new o();
                return (
                  L(i, i.head, e),
                  (function e(t, n, r, i, o, a) {
                    for (var s in r)
                      if (r.hasOwnProperty(s) && r[s]) {
                        var l = r[s];
                        l = Array.isArray(l) ? l : [l];
                        for (var c = 0; c < l.length; ++c) {
                          if (a && a.cause == s + ',' + c) return;
                          var u,
                            p = l[c],
                            h = p.inside,
                            d = !!p.lookbehind,
                            f = !!p.greedy,
                            g = p.alias;
                          f &&
                            !p.pattern.global &&
                            ((u = p.pattern.toString().match(/[imsuy]*$/)[0]),
                            (p.pattern = RegExp(p.pattern.source, u + 'g')));
                          for (
                            var m = p.pattern || p, v = i.next, y = o;
                            v !== n.tail && !(a && y >= a.reach);
                            y += v.value.length, v = v.next
                          ) {
                            var b = v.value;
                            if (n.length > t.length) return;
                            if (!(b instanceof F)) {
                              var k,
                                w = 1;
                              if (f) {
                                if (!(k = C(m, y, t, d))) break;
                                var x = k.index,
                                  _ = k.index + k[0].length,
                                  S = y;
                                for (S += v.value.length; S <= x; ) (v = v.next), (S += v.value.length);
                                if (((S -= v.value.length), (y = S), v.value instanceof F)) continue;
                                for (var A = v; A !== n.tail && (S < _ || 'string' == typeof A.value); A = A.next)
                                  w++, (S += A.value.length);
                                w--, (b = t.slice(y, S)), (k.index -= y);
                              } else if (!(k = C(m, 0, b, d))) continue;
                              var x = k.index,
                                T = k[0],
                                E = b.slice(0, x),
                                R = b.slice(x + T.length),
                                O = y + b.length;
                              a && O > a.reach && (a.reach = O);
                              var b = v.prev;
                              E && ((b = L(n, b, E)), (y += E.length)), z(n, b, w);
                              var T = new F(s, h ? $.tokenize(T, h) : T, g, T);
                              (v = L(n, b, T)),
                                R && L(n, v, R),
                                1 < w && e(t, n, r, v.prev, y, {cause: s + ',' + c, reach: O});
                            }
                          }
                        }
                      }
                  })(e, i, t, i.head, 0),
                  (function (e) {
                    var t = [],
                      n = e.head.next;
                    for (; n !== e.tail; ) t.push(n.value), (n = n.next);
                    return t;
                  })(i)
                );
              },
              hooks: {
                all: {},
                add: function (e, t) {
                  var n = $.hooks.all;
                  (n[e] = n[e] || []), n[e].push(t);
                },
                run: function (e, t) {
                  var n = $.hooks.all[e];
                  if (n && n.length) for (var r, i = 0; (r = n[i++]); ) r(t);
                }
              },
              Token: F
            };
          function F(e, t, n, r) {
            (this.type = e), (this.content = t), (this.alias = n), (this.length = 0 | (r || '').length);
          }
          function C(e, t, n, r) {
            e.lastIndex = t;
            n = e.exec(n);
            return n && r && n[1] && ((r = n[1].length), (n.index += r), (n[0] = n[0].slice(r))), n;
          }
          function o() {
            var e = {value: null, prev: null, next: null},
              t = {value: null, prev: e, next: null};
            (e.next = t), (this.head = e), (this.tail = t), (this.length = 0);
          }
          function L(e, t, n) {
            var r = t.next,
              n = {value: n, prev: t, next: r};
            return (t.next = n), (r.prev = n), e.length++, n;
          }
          function z(e, t, n) {
            for (var r = t.next, i = 0; i < n && r !== e.tail; i++) r = r.next;
            ((t.next = r).prev = t), (e.length -= i);
          }
          if (
            ((l.Prism = $),
            (F.stringify = function t(e, n) {
              if ('string' == typeof e) return e;
              if (Array.isArray(e)) {
                var r = '';
                return (
                  e.forEach(function (e) {
                    r += t(e, n);
                  }),
                  r
                );
              }
              var i = {
                  type: e.type,
                  content: t(e.content, n),
                  tag: 'span',
                  classes: ['token', e.type],
                  attributes: {},
                  language: n
                },
                e = e.alias;
              e && (Array.isArray(e) ? Array.prototype.push.apply(i.classes, e) : i.classes.push(e)),
                $.hooks.run('wrap', i);
              var o,
                a = '';
              for (o in i.attributes) a += ' ' + o + '="' + (i.attributes[o] || '').replace(/"/g, '&quot;') + '"';
              return '<' + i.tag + ' class="' + i.classes.join(' ') + '"' + a + '>' + i.content + '</' + i.tag + '>';
            }),
            !l.document)
          )
            return (
              l.addEventListener &&
                ($.disableWorkerMessageHandler ||
                  l.addEventListener(
                    'message',
                    function (e) {
                      var t = JSON.parse(e.data),
                        n = t.language,
                        e = t.code,
                        t = t.immediateClose;
                      l.postMessage($.highlight(e, $.languages[n], n)), t && l.close();
                    },
                    !1
                  )),
              $
            );
          var e,
            n = $.util.currentScript();
          function r() {
            $.manual || $.highlightAll();
          }
          return (
            n && (($.filename = n.src), n.hasAttribute('data-manual') && ($.manual = !0)),
            $.manual ||
              ('loading' === (e = document.readyState) || ('interactive' === e && n && n.defer)
                ? document.addEventListener('DOMContentLoaded', r)
                : window.requestAnimationFrame
                ? window.requestAnimationFrame(r)
                : window.setTimeout(r, 16)),
            $
          );
        })(
          'undefined' != typeof window
            ? window
            : 'undefined' != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope
            ? self
            : {}
        );
      function p(e, t) {
        var n = (n = e.className).replace(r, ' ') + ' language-' + t;
        e.className = n.replace(/\s+/g, ' ').trim();
      }
      e.exports && (e.exports = i),
        void 0 !== dt && (dt.Prism = i),
        (i.languages.markup = {
          comment: /<!--[\s\S]*?-->/,
          prolog: /<\?[\s\S]+?\?>/,
          doctype: {
            pattern:
              /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
            greedy: !0,
            inside: {
              'internal-subset': {pattern: /(\[)[\s\S]+(?=\]>$)/, lookbehind: !0, greedy: !0, inside: null},
              string: {pattern: /"[^"]*"|'[^']*'/, greedy: !0},
              punctuation: /^<!|>$|[[\]]/,
              'doctype-tag': /^DOCTYPE/,
              name: /[^\s<>'"]+/
            }
          },
          cdata: /<!\[CDATA\[[\s\S]*?]]>/i,
          tag: {
            pattern:
              /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
            greedy: !0,
            inside: {
              tag: {pattern: /^<\/?[^\s>\/]+/, inside: {punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/}},
              'attr-value': {
                pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
                inside: {punctuation: [{pattern: /^=/, alias: 'attr-equals'}, /"|'/]}
              },
              punctuation: /\/?>/,
              'attr-name': {pattern: /[^\s>\/]+/, inside: {namespace: /^[^\s>\/:]+:/}}
            }
          },
          entity: [{pattern: /&[\da-z]{1,8};/i, alias: 'named-entity'}, /&#x?[\da-f]{1,8};/i]
        }),
        (i.languages.markup.tag.inside['attr-value'].inside.entity = i.languages.markup.entity),
        (i.languages.markup.doctype.inside['internal-subset'].inside = i.languages.markup),
        i.hooks.add('wrap', function (e) {
          'entity' === e.type && (e.attributes.title = e.content.replace(/&amp;/, '&'));
        }),
        Object.defineProperty(i.languages.markup.tag, 'addInlined', {
          value: function (e, t) {
            var n = {};
            (n['language-' + t] = {
              pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
              lookbehind: !0,
              inside: i.languages[t]
            }),
              (n.cdata = /^<!\[CDATA\[|\]\]>$/i);
            n = {'included-cdata': {pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i, inside: n}};
            n['language-' + t] = {pattern: /[\s\S]+/, inside: i.languages[t]};
            t = {};
            (t[e] = {
              pattern: RegExp(
                /(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(
                  /__/g,
                  function () {
                    return e;
                  }
                ),
                'i'
              ),
              lookbehind: !0,
              greedy: !0,
              inside: n
            }),
              i.languages.insertBefore('markup', 'cdata', t);
          }
        }),
        (i.languages.html = i.languages.markup),
        (i.languages.mathml = i.languages.markup),
        (i.languages.svg = i.languages.markup),
        (i.languages.xml = i.languages.extend('markup', {})),
        (i.languages.ssml = i.languages.xml),
        (i.languages.atom = i.languages.xml),
        (i.languages.rss = i.languages.xml),
        (function (e) {
          var t = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
          (e.languages.css = {
            comment: /\/\*[\s\S]*?\*\//,
            atrule: {
              pattern: /@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,
              inside: {
                rule: /^@[\w-]+/,
                'selector-function-argument': {
                  pattern: /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,
                  lookbehind: !0,
                  alias: 'selector'
                },
                keyword: {pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/, lookbehind: !0}
              }
            },
            url: {
              pattern: RegExp('\\burl\\((?:' + t.source + '|' + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ')\\)', 'i'),
              greedy: !0,
              inside: {
                function: /^url/i,
                punctuation: /^\(|\)$/,
                string: {pattern: RegExp('^' + t.source + '$'), alias: 'url'}
              }
            },
            selector: RegExp('[^{}\\s](?:[^{};"\'\\s]|\\s+(?![\\s{])|' + t.source + ')*(?=\\s*\\{)'),
            string: {pattern: t, greedy: !0},
            property: /(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
            important: /!important\b/i,
            function: /[-a-z0-9]+(?=\()/i,
            punctuation: /[(){};:,]/
          }),
            (e.languages.css.atrule.inside.rest = e.languages.css);
          t = e.languages.markup;
          t &&
            (t.tag.addInlined('style', 'css'),
            e.languages.insertBefore(
              'inside',
              'attr-value',
              {
                'style-attr': {
                  pattern: /(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,
                  lookbehind: !0,
                  inside: {
                    'attr-value': {
                      pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
                      inside: {
                        style: {
                          pattern: /(["'])[\s\S]+(?=["']$)/,
                          lookbehind: !0,
                          alias: 'language-css',
                          inside: e.languages.css
                        },
                        punctuation: [{pattern: /^=/, alias: 'attr-equals'}, /"|'/]
                      }
                    },
                    'attr-name': /^style/i
                  }
                }
              },
              t.tag
            ));
        })(i),
        (i.languages.clike = {
          comment: [
            {pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0, greedy: !0},
            {pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0}
          ],
          string: {pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: !0},
          'class-name': {
            pattern: /(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,
            lookbehind: !0,
            inside: {punctuation: /[.\\]/}
          },
          keyword:
            /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
          boolean: /\b(?:true|false)\b/,
          function: /\w+(?=\()/,
          number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
          operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
          punctuation: /[{}[\];(),.:]/
        }),
        (i.languages.javascript = i.languages.extend('clike', {
          'class-name': [
            i.languages.clike['class-name'],
            {
              pattern:
                /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,
              lookbehind: !0
            }
          ],
          keyword: [
            {pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0},
            {
              pattern:
                /(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
              lookbehind: !0
            }
          ],
          function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
          number:
            /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,
          operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
        })),
        (i.languages.javascript['class-name'][0].pattern =
          /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/),
        i.languages.insertBefore('javascript', 'keyword', {
          regex: {
            pattern:
              /((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,
            lookbehind: !0,
            greedy: !0,
            inside: {
              'regex-source': {
                pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
                lookbehind: !0,
                alias: 'language-regex',
                inside: i.languages.regex
              },
              'regex-flags': /[a-z]+$/,
              'regex-delimiter': /^\/|\/$/
            }
          },
          'function-variable': {
            pattern:
              /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
            alias: 'function'
          },
          parameter: [
            {
              pattern:
                /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
              lookbehind: !0,
              inside: i.languages.javascript
            },
            {
              pattern: /(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
              inside: i.languages.javascript
            },
            {
              pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
              lookbehind: !0,
              inside: i.languages.javascript
            },
            {
              pattern:
                /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
              lookbehind: !0,
              inside: i.languages.javascript
            }
          ],
          constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/
        }),
        i.languages.insertBefore('javascript', 'string', {
          'template-string': {
            pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,
            greedy: !0,
            inside: {
              'template-punctuation': {pattern: /^`|`$/, alias: 'string'},
              interpolation: {
                pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,
                lookbehind: !0,
                inside: {
                  'interpolation-punctuation': {pattern: /^\${|}$/, alias: 'punctuation'},
                  rest: i.languages.javascript
                }
              },
              string: /[\s\S]+/
            }
          }
        }),
        i.languages.markup && i.languages.markup.tag.addInlined('script', 'javascript'),
        (i.languages.js = i.languages.javascript),
        'undefined' != typeof self &&
          self.Prism &&
          self.document &&
          (Element.prototype.matches ||
            (Element.prototype.matches =
              Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector),
          (a = window.Prism),
          (s = {
            js: 'javascript',
            py: 'python',
            rb: 'ruby',
            ps1: 'powershell',
            psm1: 'powershell',
            sh: 'bash',
            bat: 'batch',
            h: 'c',
            tex: 'latex'
          }),
          (u =
            'pre[data-src]:not([' + (l = 'data-src-status') + '="loaded"]):not([' + l + '="' + (c = 'loading') + '"])'),
          (r = /\blang(?:uage)?-([\w-]+)\b/i),
          a.hooks.add('before-highlightall', function (e) {
            e.selector += ', ' + u;
          }),
          a.hooks.add('before-sanity-check', function (e) {
            var t,
              n,
              r,
              i,
              o = e.element;
            o.matches(u) &&
              ((e.code = ''),
              o.setAttribute(l, c),
              ((t = o.appendChild(document.createElement('CODE'))).textContent = 'Loading…'),
              (n = o.getAttribute('data-src')),
              'none' === (e = e.language) && ((r = (/\.(\w+)$/.exec(n) || [, 'none'])[1]), (e = s[r] || r)),
              p(t, e),
              p(o, e),
              (r = a.plugins.autoloader) && r.loadLanguages(e),
              (i = new XMLHttpRequest()).open('GET', n, !0),
              (i.onreadystatechange = function () {
                4 == i.readyState &&
                  (i.status < 400 && i.responseText
                    ? (o.setAttribute(l, 'loaded'), (t.textContent = i.responseText), a.highlightElement(t))
                    : (o.setAttribute(l, 'failed'),
                      400 <= i.status
                        ? (t.textContent = '✖ Error ' + i.status + ' while fetching file: ' + i.statusText)
                        : (t.textContent = '✖ Error: File does not exist or is empty')));
              }),
              i.send(null));
          }),
          (t = !(a.plugins.fileHighlight = {
            highlight: function (e) {
              for (var t, n = (e || document).querySelectorAll(u), r = 0; (t = n[r++]); ) a.highlightElement(t);
            }
          })),
          (a.fileHighlight = function () {
            t ||
              (console.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.'),
              (t = !0)),
              a.plugins.fileHighlight.highlight.apply(this, arguments);
          }));
    });
  function Rn(e, t) {
    return '___' + e.toUpperCase() + t + '___';
  }
  (Tn = Prism),
    Object.defineProperties((Tn.languages['markup-templating'] = {}), {
      buildPlaceholders: {
        value: function (r, i, e, o) {
          var a;
          r.language === i &&
            ((a = r.tokenStack = []),
            (r.code = r.code.replace(e, function (e) {
              if ('function' == typeof o && !o(e)) return e;
              for (var t, n = a.length; -1 !== r.code.indexOf((t = Rn(i, n))); ) ++n;
              return (a[n] = e), t;
            })),
            (r.grammar = Tn.languages.markup));
        }
      },
      tokenizePlaceholders: {
        value: function (c, u) {
          var p, h;
          c.language === u &&
            c.tokenStack &&
            ((c.grammar = Tn.languages[u]),
            (p = 0),
            (h = Object.keys(c.tokenStack)),
            (function e(t) {
              for (var n = 0; n < t.length && !(p >= h.length); n++) {
                var r,
                  i,
                  o,
                  a,
                  s,
                  l = t[n];
                'string' == typeof l || (l.content && 'string' == typeof l.content)
                  ? ((i = h[p]),
                    (o = c.tokenStack[i]),
                    (r = 'string' == typeof l ? l : l.content),
                    (s = Rn(u, i)),
                    -1 < (a = r.indexOf(s)) &&
                      (++p,
                      (i = r.substring(0, a)),
                      (o = new Tn.Token(u, Tn.tokenize(o, c.grammar), 'language-' + u, o)),
                      (a = r.substring(a + s.length)),
                      (s = []),
                      i && s.push.apply(s, e([i])),
                      s.push(o),
                      a && s.push.apply(s, e([a])),
                      'string' == typeof l ? t.splice.apply(t, [n, 1].concat(s)) : (l.content = s)))
                  : l.content && e(l.content);
              }
              return t;
            })(c.tokens));
        }
      }
    });
  function On(i, e) {
    var o = this;
    (this.config = i),
      (this.router = e),
      (this.cacheTree = {}),
      (this.toc = []),
      (this.cacheTOC = {}),
      (this.linkTarget = i.externalLinkTarget || '_blank'),
      (this.linkRel = '_blank' === this.linkTarget ? i.externalLinkRel || 'noopener' : ''),
      (this.contentBase = e.getBasePath());
    var t = this._initRenderer();
    this.heading = t.heading;
    var a = r((e = i.markdown || {})) ? e(gn, t) : (gn.setOptions(y(e, {renderer: y(t, e.renderer)})), gn);
    (this._marked = a),
      (this.compile = function (n) {
        var r = !0,
          e = s(function (e) {
            r = !1;
            var t = '';
            return n
              ? ((t = c(n) ? a(n) : a.parser(n)),
                (t = i.noEmoji
                  ? t
                  : t
                      .replace(/:\+1:/g, ':thumbsup:')
                      .replace(/:-1:/g, ':thumbsdown:')
                      .replace(/<(pre|template|code)[^>]*?>[\s\S]+?<\/(pre|template|code)>/g, function (e) {
                        return e.replace(/:/g, '__colon__');
                      })
                      .replace(/:(\w+?):/gi, window.emojify || _n)
                      .replace(/__colon__/g, ':')),
                xn.clear(),
                t)
              : n;
          })(n),
          t = o.router.parse().file;
        return r ? (o.toc = o.cacheTOC[t]) : (o.cacheTOC[t] = [].concat(o.toc)), e;
      });
  }
  var $n = {},
    Fn = {
      markdown: function (e) {
        return {url: e};
      },
      mermaid: function (e) {
        return {url: e};
      },
      iframe: function (e, t) {
        return {html: '<iframe src="' + e + '" ' + (t || 'width=100% height=400') + '></iframe>'};
      },
      video: function (e, t) {
        return {html: '<video src="' + e + '" ' + (t || 'controls') + '>Not Support</video>'};
      },
      audio: function (e, t) {
        return {html: '<audio src="' + e + '" ' + (t || 'controls') + '>Not Support</audio>'};
      },
      code: function (e, t) {
        var n = e.match(/\.(\w+)$/);
        return 'md' === (n = t || (n && n[1])) && (n = 'markdown'), {url: e, lang: n};
      }
    };
  (On.prototype.compileEmbed = function (e, t) {
    var n,
      r,
      i = Sn(t),
      o = i.str,
      i = i.config;
    if (((t = o), i.include))
      return (
        O(e) || (e = N(this.contentBase, F(this.router.getCurrentPath()), e)),
        i.type && (r = Fn[i.type])
          ? ((n = r.call(this, e, t)).type = i.type)
          : ((r = 'code'),
            /\.(md|markdown)/.test(e)
              ? (r = 'markdown')
              : /\.mmd/.test(e)
              ? (r = 'mermaid')
              : /\.html?/.test(e)
              ? (r = 'iframe')
              : /\.(mp4|ogg)/.test(e)
              ? (r = 'video')
              : /\.mp3/.test(e) && (r = 'audio'),
            ((n = Fn[r].call(this, e, t)).type = r)),
        (n.fragment = i.fragment),
        n
      );
  }),
    (On.prototype._matchNotCompileLink = function (e) {
      for (var t = this.config.noCompileLinks || [], n = 0; n < t.length; n++) {
        var r = t[n];
        if (($n[r] || ($n[r] = new RegExp('^' + r + '$'))).test(e)) return e;
      }
    }),
    (On.prototype._initRenderer = function () {
      var a,
        s,
        l,
        c,
        u,
        p,
        e = new gn.Renderer(),
        t = this.linkTarget,
        n = this.linkRel,
        o = this.router,
        r = this.contentBase,
        h = this,
        i = {};
      return (
        (i.heading = e.heading =
          function (e, t) {
            var n = Sn(e),
              r = n.str,
              i = n.config,
              e = {level: t, title: An(r)};
            /<!-- {docsify-ignore} -->/g.test(r) &&
              ((r = r.replace('\x3c!-- {docsify-ignore} --\x3e', '')), (e.title = An(r)), (e.ignoreSubHeading = !0)),
              /{docsify-ignore}/g.test(r) &&
                ((r = r.replace('{docsify-ignore}', '')), (e.title = An(r)), (e.ignoreSubHeading = !0)),
              /<!-- {docsify-ignore-all} -->/g.test(r) &&
                ((r = r.replace('\x3c!-- {docsify-ignore-all} --\x3e', '')), (e.title = An(r)), (e.ignoreAllSubs = !0)),
              /{docsify-ignore-all}/g.test(r) &&
                ((r = r.replace('{docsify-ignore-all}', '')), (e.title = An(r)), (e.ignoreAllSubs = !0));
            (n = xn(i.id || r)), (i = o.toURL(o.getCurrentPath(), {id: n}));
            return (
              (e.slug = i),
              h.toc.push(e),
              '<h' +
                t +
                ' id="' +
                n +
                '"><a href="' +
                i +
                '" data-id="' +
                n +
                '" class="anchor"><span>' +
                r +
                '</span></a></h' +
                t +
                '>'
            );
          }),
        (i.code = {renderer: e}.renderer.code =
          function (e, t) {
            void 0 === t && (t = 'markup');
            var n = En.languages[t] || En.languages.markup;
            return (
              '<pre v-pre data-lang="' +
              t +
              '"><code class="lang-' +
              t +
              '">' +
              En.highlight(e.replace(/@DOCSIFY_QM@/g, '`'), n, t) +
              '</code></pre>'
            );
          }),
        (i.link =
          ((n = (t = {renderer: e, router: o, linkTarget: t, linkRel: n, compilerClass: h}).renderer),
          (a = t.router),
          (s = t.linkTarget),
          (l = t.linkRel),
          (c = t.compilerClass),
          (n.link = function (e, t, n) {
            void 0 === t && (t = '');
            var r = [],
              i = Sn(t),
              o = i.str,
              i = i.config;
            return (
              (s = i.target || s),
              (l = '_blank' === s ? c.config.externalLinkRel || 'noopener' : ''),
              (t = o),
              O(e) || c._matchNotCompileLink(e) || i.ignore
                ? (O(e) ||
                    './' !== e.slice(0, 2) ||
                    (e = document.URL.replace(/\/(?!.*\/).*/, '/').replace('#/./', '') + e),
                  r.push(0 === e.indexOf('mailto:') ? '' : 'target="' + s + '"'),
                  r.push(0 !== e.indexOf('mailto:') && '' !== l ? ' rel="' + l + '"' : ''))
                : (e === c.config.homepage && (e = 'README'), (e = a.toURL(e, null, a.getCurrentPath()))),
              i.crossorgin &&
                '_self' === s &&
                'history' === c.config.routerMode &&
                -1 === c.config.crossOriginLinks.indexOf(e) &&
                c.config.crossOriginLinks.push(e),
              i.disabled && (r.push('disabled'), (e = 'javascript:void(0)')),
              i.class && r.push('class="' + i.class + '"'),
              i.id && r.push('id="' + i.id + '"'),
              t && r.push('title="' + t + '"'),
              '<a href="' + e + '" ' + r.join(' ') + '>' + n + '</a>'
            );
          }))),
        (i.paragraph = {renderer: e}.renderer.paragraph =
          function (e) {
            e = /^!&gt;/.test(e) ? vn('tip', e) : /^\?&gt;/.test(e) ? vn('warn', e) : '<p>' + e + '</p>';
            return e;
          }),
        (i.image =
          ((r = (n = {renderer: e, contentBase: r, router: o}).renderer),
          (u = n.contentBase),
          (p = n.router),
          (r.image = function (e, t, n) {
            var r = e,
              i = [],
              o = Sn(t),
              a = o.str,
              o = o.config;
            return (
              (t = a),
              o['no-zoom'] && i.push('data-no-zoom'),
              t && i.push('title="' + t + '"'),
              o.size &&
                ((t = (a = o.size.split('x'))[0]),
                (a = a[1]) ? i.push('width="' + t + '" height="' + a + '"') : i.push('width="' + t + '"')),
              o.class && i.push('class="' + o.class + '"'),
              o.id && i.push('id="' + o.id + '"'),
              O(e) || (r = N(u, F(p.getCurrentPath()), e)),
              0 < i.length
                ? '<img src="' + r + '" data-origin="' + e + '" alt="' + n + '" ' + i.join(' ') + ' />'
                : '<img src="' + r + '" data-origin="' + e + '" alt="' + n + '"' + i + '>'
            );
          }))),
        (i.list = {renderer: e}.renderer.list =
          function (e, t, n) {
            t = t ? 'ol' : 'ul';
            return (
              '<' +
              t +
              ' ' +
              [
                /<li class="task-list-item">/.test(e.split('class="task-list"')[0]) ? 'class="task-list"' : '',
                n && 1 < n ? 'start="' + n + '"' : ''
              ]
                .join(' ')
                .trim() +
              '>' +
              e +
              '</' +
              t +
              '>'
            );
          }),
        (i.listitem = {renderer: e}.renderer.listitem =
          function (e) {
            return /^(<input.*type="checkbox"[^>]*>)/.test(e)
              ? '<li class="task-list-item"><label>' + e + '</label></li>'
              : '<li>' + e + '</li>';
          }),
        (e.origin = i),
        e
      );
    }),
    (On.prototype.sidebar = function (e, t) {
      var n = this.toc,
        r = this.router.getCurrentPath(),
        i = '';
      if (e) i = this.compile(e);
      else {
        for (var o = 0; o < n.length; o++)
          if (n[o].ignoreSubHeading) {
            var a = n[o].level;
            n.splice(o, 1);
            for (var s = o; s < n.length && a < n[s].level; s++) n.splice(s, 1) && s-- && o++;
            o--;
          }
        (t = this.cacheTree[r] || yn(n, t)), (i = mn(t, '<ul>{inner}</ul>'));
        this.cacheTree[r] = t;
      }
      return i;
    }),
    (On.prototype.subSidebar = function (e) {
      if (e) {
        var t = this.router.getCurrentPath(),
          n = this.cacheTree,
          r = this.toc;
        r[0] && r[0].ignoreAllSubs && r.splice(0), r[0] && 1 === r[0].level && r.shift();
        for (var i = 0; i < r.length; i++) r[i].ignoreSubHeading && r.splice(i, 1) && i--;
        e = n[t] || yn(r, e);
        return (n[t] = e), (this.toc = []), mn(e);
      }
      this.toc = [];
    }),
    (On.prototype.header = function (e, t) {
      return this.heading(e, t);
    }),
    (On.prototype.article = function (e) {
      return this.compile(e);
    }),
    (On.prototype.cover = function (e) {
      var t = this.toc.slice(),
        e = this.compile(e);
      return (this.toc = t.slice()), e;
    });
  var Cn,
    Ln = function (e) {
      var t = (function (e) {
        e = e.match(/^[ \t]*(?=\S)/gm);
        return e
          ? e.reduce(function (e, t) {
              return Math.min(e, t.length);
            }, 1 / 0)
          : 0;
      })(e);
      if (0 === t) return e;
      t = new RegExp('^[ \\t]{' + t + '}', 'gm');
      return e.replace(t, '');
    },
    zn = {};
  function Nn(e, r) {
    var o = e.compiler,
      i = e.raw;
    void 0 === i && (i = '');
    var t = e.fetch,
      e = zn[i];
    if (e) {
      var n = e.slice();
      return (n.links = e.links), r(n);
    }
    var n = o._marked,
      a = n.lexer(i),
      s = [],
      l = n.Lexer.rules.inline.link,
      c = a.links;
    a.forEach(function (e, i) {
      'paragraph' === e.type &&
        (e.text = e.text.replace(new RegExp(l.source, 'g'), function (e, t, n, r) {
          r = o.compileEmbed(n, r);
          return r && s.push({index: i, embed: r}), e;
        }));
    });
    var u = [];
    !(function (e, o) {
      var t,
        n = e.embedTokens,
        a = e.compile,
        s = (e.fetch, 0),
        l = 1;
      if (!n.length) return o({});
      for (; (t = n[s++]); ) {
        var r = (function (i) {
          return function (e) {
            var t, n, r;
            e &&
              ('markdown' === i.embed.type
                ? ((n = i.embed.url.split('/')).pop(),
                  (n = n.join('/')),
                  (e = e.replace(/\[([^[\]]+)\]\(([^)]+)\)/g, function (e) {
                    var t = e.indexOf('(');
                    return '(.' === e.slice(t, t + 2)
                      ? e.substring(0, t) +
                          '(' +
                          window.location.protocol +
                          '//' +
                          window.location.host +
                          n +
                          '/' +
                          e.substring(t + 1, e.length - 1) +
                          ')'
                      : e;
                  })),
                  !0 === (($docsify.frontMatter || {}).installed || !1) && (e = $docsify.frontMatter.parseMarkdown(e)),
                  (t = a.lexer(e)))
                : 'code' === i.embed.type
                ? (i.embed.fragment &&
                    ((r = i.embed.fragment),
                    (r = new RegExp(
                      '(?:###|\\/\\/\\/)\\s*\\[' + r + '\\]([\\s\\S]*)(?:###|\\/\\/\\/)\\s*\\[' + r + '\\]'
                    )),
                    (e = Ln((e.match(r) || [])[1] || '').trim())),
                  (t = a.lexer('```' + i.embed.lang + '\n' + e.replace(/`/g, '@DOCSIFY_QM@') + '\n```\n')))
                : 'mermaid' === i.embed.type
                ? ((t = [{type: 'html', text: '<div class="mermaid">\n' + e + '\n</div>'}]).links = {})
                : ((t = [{type: 'html', text: e}]).links = {})),
              o({token: i, embedToken: t}),
              ++l >= s && o({});
          };
        })(t);
        t.embed.url ? ce(t.embed.url).then(r) : r(t.embed.html);
      }
    })({compile: n, embedTokens: s, fetch: t}, function (e) {
      var t,
        n = e.embedToken,
        e = e.token;
      e
        ? ((t = e.index),
          u.forEach(function (e) {
            t > e.start && (t += e.length);
          }),
          y(c, n.links),
          (a = a.slice(0, t).concat(n, a.slice(t + 1))),
          u.push({start: t, length: n.length - 1}))
        : ((zn[i] = a.concat()), (a.links = zn[i].links = c), r(a));
    });
  }
  function Mn(e, t, n) {
    var r, i, o, a;
    return (
      (t =
        'function' == typeof n
          ? n(t)
          : 'string' == typeof n
          ? ((o = []),
            (a = 0),
            (r = n).replace(B, function (t, e, n) {
              o.push(r.substring(a, n - 1)),
                (a = n += t.length + 1),
                o.push(
                  (i && i[t]) ||
                    function (e) {
                      return ('00' + ('string' == typeof Z[t] ? e[Z[t]]() : Z[t](e))).slice(-t.length);
                    }
                );
            }),
            a !== r.length && o.push(r.substring(a)),
            (function (e) {
              for (var t = '', n = 0, r = e || new Date(); n < o.length; n++)
                t += 'string' == typeof o[n] ? o[n] : o[n](r);
              return t;
            })(new Date(t)))
          : t),
      e.replace(/{docsify-updated}/g, t)
    );
  }
  function Dn(e) {
    function t(e) {
      var t = Boolean(e.__vue__ && e.__vue__._isVue),
        e = Boolean(e._vnode && e._vnode.__v_skip);
      return t || e;
    }
    var n = this.config,
      r = b('.markdown-section'),
      i = 'Vue' in window && window.Vue.version && Number(window.Vue.version.charAt(0));
    if (((e = e || '<h1>404 - Not found</h1>'), 'Vue' in window))
      for (var o = 0, a = k('.markdown-section > *').filter(t); o < a.length; o += 1) {
        var s = a[o];
        2 === i ? s.__vue__.$destroy() : 3 === i && s.__vue_app__.unmount();
      }
    if (
      (this._renderTo(r, e),
      n.loadSidebar || this._renderSidebar(),
      (n.executeScript || ('Vue' in window && !1 !== n.executeScript)) &&
        (!(e = k('.markdown-section>script').filter(function (e) {
          return !/template/.test(e.type);
        })[0]) ||
          ((e = e.innerText.trim()) && new Function(e)())),
      'Vue' in window)
    ) {
      var l,
        c,
        u = [],
        p = Object.keys(n.vueComponents || {});
      2 === i &&
        p.length &&
        p.forEach(function (e) {
          window.Vue.options.components[e] || window.Vue.component(e, n.vueComponents[e]);
        }),
        !Cn && n.vueGlobalOptions && 'function' == typeof n.vueGlobalOptions.data && (Cn = n.vueGlobalOptions.data()),
        u.push.apply(
          u,
          Object.keys(n.vueMounts || {})
            .map(function (e) {
              return [b(r, e), n.vueMounts[e]];
            })
            .filter(function (e) {
              var t = e[0];
              e[1];
              return t;
            })
        ),
        (n.vueGlobalOptions || p.length) &&
          ((l = /{{2}[^{}]*}{2}/),
          (c = /<[^>/]+\s([@:]|v-)[\w-:.[\]]+[=>\s]/),
          u.push.apply(
            u,
            k('.markdown-section > *')
              .filter(function (n) {
                return !u.some(function (e) {
                  var t = e[0];
                  e[1];
                  return t === n;
                });
              })
              .filter(function (e) {
                return (
                  e.tagName.toLowerCase() in (n.vueComponents || {}) ||
                  e.querySelector(p.join(',') || null) ||
                  l.test(e.outerHTML) ||
                  c.test(e.outerHTML)
                );
              })
              .map(function (e) {
                var t = y({}, n.vueGlobalOptions || {});
                return (
                  Cn &&
                    (t.data = function () {
                      return Cn;
                    }),
                  [e, t]
                );
              })
          ));
      for (var h = 0, d = u; h < d.length; h += 1) {
        var f,
          g = d[h],
          m = g[0],
          v = g[1],
          g = 'data-isvue';
        m.matches('pre, script') ||
          t(m) ||
          m.querySelector('[' + g + ']') ||
          (m.setAttribute(g, ''),
          2 === i
            ? ((v.el = void 0), new window.Vue(v).$mount(m))
            : 3 === i &&
              ((f = window.Vue.createApp(v)),
              p.forEach(function (e) {
                var t = n.vueComponents[e];
                f.component(e, t);
              }),
              f.mount(m)));
      }
    }
  }
  function Pn(t, n, r, i, o, e) {
    (t = e ? t : t.replace(/\/$/, '')),
      (t = F(t)) &&
        ce(o.router.getFile(t + r) + n, !1, o.config.requestHeaders).then(i, function (e) {
          return Pn(t, n, r, i, o);
        });
  }
  var In = Object.freeze({
    __proto__: null,
    cached: s,
    hyphenate: o,
    hasOwn: l,
    merge: y,
    isPrimitive: c,
    noop: u,
    isFn: r,
    isExternal: p,
    inBrowser: !0,
    isMobile: h,
    supportsPushState: i,
    parseQuery: E,
    stringifyQuery: R,
    isAbsolutePath: O,
    removeParams: $,
    getParentPath: F,
    cleanPath: C,
    resolvePath: L,
    getPath: N,
    replaceSlug: M,
    endsWith: D
  });
  var jn,
    Hn,
    qn = (function (e) {
      function t() {
        e.call(this),
          (this.config = we(this)),
          this.initLifecycle(),
          this.initPlugin(),
          this.callHook('init'),
          this.initRouter(),
          this.initRender(),
          this.initEvent(),
          this.initFetch(),
          this.callHook('mounted');
      }
      return (
        e && (t.__proto__ = e),
        (((t.prototype = Object.create(e && e.prototype)).constructor = t).prototype.initPlugin = function () {
          var t = this;
          [].concat(this.config.plugins).forEach(function (e) {
            return r(e) && e(t._lifecycle, t);
          });
        }),
        t
      );
    })(
      ((Hn = Object),
      (function (e) {
        function t() {
          e.apply(this, arguments);
        }
        return (
          e && (t.__proto__ = e),
          (((t.prototype = Object.create(e && e.prototype)).constructor = t).prototype._loadSideAndNav = function (
            e,
            t,
            n,
            r
          ) {
            var i = this;
            return function () {
              if (!n) return r();
              Pn(
                e,
                t,
                n,
                function (e) {
                  i._renderSidebar(e), r();
                },
                i,
                !0
              );
            };
          }),
          (t.prototype._fetch = function (n) {
            var r = this;
            void 0 === n && (n = u);
            var i,
              e,
              t,
              o,
              a,
              s = this.route.query,
              l = this.route.path;
            p(l)
              ? (history.replaceState(null, '', '#'), this.router.normalize())
              : ((i = R(s, ['id'])),
                (t = (e = this.config).loadNavbar),
                (s = e.requestHeaders),
                (o = e.loadSidebar),
                (a = this.router.getFile(l)),
                (s = Un(a + i, 0, s)),
                (this.isRemoteUrl = p(a)),
                (this.isHTML = /\.html$/g.test(a)),
                s.then(
                  function (e, t) {
                    return r._renderMain(e, t, r._loadSideAndNav(l, i, o, n));
                  },
                  function (e) {
                    r._fetchFallbackPage(l, i, n) || r._fetch404(a, i, n);
                  }
                ),
                t &&
                  Pn(
                    l,
                    i,
                    t,
                    function (e) {
                      return r._renderNav(e);
                    },
                    this,
                    !0
                  ));
          }),
          (t.prototype._fetchCover = function () {
            var t = this,
              e = this.config,
              n = e.coverpage,
              r = e.requestHeaders,
              i = this.route.query,
              o = F(this.route.path);
            if (n) {
              var a = null,
                e = this.route.path;
              'string' == typeof n
                ? '/' === e && (a = n)
                : (a = Array.isArray(n) ? -1 < n.indexOf(e) && '_coverpage' : !0 === (e = n[e]) ? '_coverpage' : e);
              var s = Boolean(a) && this.config.onlyCover;
              return (
                a
                  ? ((a = this.router.getFile(o + a)),
                    (this.coverIsHTML = /\.html$/g.test(a)),
                    ce(a + R(i, ['id']), !1, r).then(function (e) {
                      return t._renderCover(e, s);
                    }))
                  : this._renderCover(null, s),
                s
              );
            }
          }),
          (t.prototype.$fetch = function (e, t) {
            var n = this;
            void 0 === e && (e = u), void 0 === t && (t = this.$resetEvents.bind(this));
            function r() {
              n.callHook('doneEach'), e();
            }
            this._fetchCover()
              ? r()
              : this._fetch(function () {
                  t(), r();
                });
          }),
          (t.prototype._fetchFallbackPage = function (n, r, i) {
            var o = this;
            void 0 === i && (i = u);
            var e = this.config,
              t = e.requestHeaders,
              a = e.fallbackLanguages,
              s = e.loadSidebar;
            if (!a) return !1;
            e = n.split('/')[1];
            if (-1 === a.indexOf(e)) return !1;
            e = this.router.getFile(n.replace(new RegExp('^/' + e), ''));
            return (
              Un(e + r, 0, t).then(
                function (e, t) {
                  return o._renderMain(e, t, o._loadSideAndNav(n, r, s, i));
                },
                function () {
                  return o._fetch404(n, r, i);
                }
              ),
              !0
            );
          }),
          (t.prototype._fetch404 = function (e, t, n) {
            var r = this;
            void 0 === n && (n = u);
            var i = this.config,
              o = i.loadSidebar,
              a = i.requestHeaders,
              i = i.notFoundPage,
              s = this._loadSideAndNav(e, t, o, n);
            if (i) {
              e = (function (t, e) {
                var n,
                  r = e.notFoundPage,
                  i = '_404' + (e.ext || '.md');
                switch (typeof r) {
                  case 'boolean':
                    n = i;
                    break;
                  case 'string':
                    n = r;
                    break;
                  case 'object':
                    n =
                      ((e = Object.keys(r)
                        .sort(function (e, t) {
                          return t.length - e.length;
                        })
                        .filter(function (e) {
                          return t.match(new RegExp('^' + e));
                        })[0]) &&
                        r[e]) ||
                      i;
                }
                return n;
              })(e, this.config);
              return (
                Un(this.router.getFile(e), 0, a).then(
                  function (e, t) {
                    return r._renderMain(e, t, s);
                  },
                  function () {
                    return r._renderMain(null, {}, s);
                  }
                ),
                !0
              );
            }
            return this._renderMain(null, {}, s), !1;
          }),
          (t.prototype.initFetch = function () {
            var e,
              t = this,
              n = this.config.loadSidebar;
            this.rendered
              ? ((e = de(this.router, '.sidebar-nav', !0, !0)),
                n && e && (e.parentNode.innerHTML += window.__SUB_SIDEBAR__),
                this._bindEventOnRendered(e),
                this.$resetEvents(),
                this.callHook('doneEach'),
                this.callHook('ready'))
              : this.$fetch(function (e) {
                  return t.callHook('ready');
                });
          }),
          t
        );
      })(
        (function (e) {
          function t() {
            e.apply(this, arguments);
          }
          return (
            e && (t.__proto__ = e),
            (((t.prototype = Object.create(e && e.prototype)).constructor = t).prototype.$resetEvents = function (e) {
              var t = this,
                n = this.config.auto2top;
              'history' !== e &&
                (t.route.query.id && Oe(t.route.path, t.route.query.id),
                'navigate' === e && n && (void 0 === (n = n) && (n = 0), ($e.scrollTop = !0 === n ? 0 : Number(n)))),
                this.config.loadNavbar && de(this.router, 'nav');
            }),
            (t.prototype.initEvent = function () {
              function t(e) {
                return g.classList.toggle('close');
              }
              var e;
              (e = 'button.sidebar-toggle'),
                this.router,
                null != (e = d(e)) &&
                  (x(e, 'click', function (e) {
                    e.stopPropagation(), t();
                  }),
                  h &&
                    x(g, 'click', function (e) {
                      return g.classList.contains('close') && t();
                    })),
                (e = '.sidebar'),
                this.router,
                null != (e = d(e)) &&
                  x(e, 'click', function (e) {
                    e = e.target;
                    'A' === e.nodeName &&
                      e.nextSibling &&
                      e.nextSibling.classList &&
                      e.nextSibling.classList.contains('app-sub-sidebar') &&
                      S(e.parentNode, 'collapse');
                  }),
                this.config.coverpage ? h || x('scroll', he) : g.classList.add('sticky');
            }),
            t
          );
        })(
          (function (e) {
            function t() {
              e.apply(this, arguments);
            }
            return (
              e && (t.__proto__ = e),
              (((t.prototype = Object.create(e && e.prototype)).constructor = t).prototype._renderTo = function (
                e,
                t,
                n
              ) {
                e = d(e);
                e && (e[n ? 'outerHTML' : 'innerHTML'] = t);
              }),
              (t.prototype._renderSidebar = function (e) {
                var t = this.config,
                  n = t.maxLevel,
                  r = t.subMaxLevel,
                  i = t.loadSidebar;
                if (t.hideSidebar)
                  return (
                    [document.querySelector('aside.sidebar'), document.querySelector('button.sidebar-toggle')].forEach(
                      function (e) {
                        return e.parentNode.removeChild(e);
                      }
                    ),
                    (document.querySelector('section.content').style.right = 'unset'),
                    (document.querySelector('section.content').style.left = 'unset'),
                    (document.querySelector('section.content').style.position = 'relative'),
                    (document.querySelector('section.content').style.width = '100%'),
                    null
                  );
                this._renderTo('.sidebar-nav', this.compiler.sidebar(e, n));
                n = de(this.router, '.sidebar-nav', !0, !0);
                i && n ? (n.parentNode.innerHTML += this.compiler.subSidebar(r) || '') : this.compiler.subSidebar(),
                  this._bindEventOnRendered(n);
              }),
              (t.prototype._bindEventOnRendered = function (e) {
                var t,
                  n = this.config.autoHeader;
                !(function (e) {
                  var t = b('.cover.show');
                  Te = t ? t.offsetHeight : 0;
                  var t = d('.sidebar'),
                    n = [];
                  null != t && (n = k(t, 'li'));
                  for (var r, i = 0, o = n.length; i < o; i += 1) {
                    var a,
                      s,
                      l = n[i],
                      c = l.querySelector('a');
                    c &&
                      ('/' !== (a = c.getAttribute('href')) &&
                        ((c = (s = e.parse(a)).query.id), (s = s.path), c && (a = Re(s, c))),
                      a && (xe[decodeURIComponent(a)] = l));
                  }
                  h ||
                    ((r = $(e.getCurrentPath())),
                    _('scroll', function () {
                      return Ee(r);
                    }),
                    x('scroll', function () {
                      return Ee(r);
                    }),
                    x(t, 'mouseover', function () {
                      _e = !0;
                    }),
                    x(t, 'mouseleave', function () {
                      _e = !1;
                    }));
                })(this.router),
                  n &&
                    e &&
                    (n = (t = d('#main')).children[0]) &&
                    'H1' !== n.tagName &&
                    w(t, v('div', this.compiler.header(e.innerText, 1)).children[0]);
              }),
              (t.prototype._renderNav = function (e) {
                e && this._renderTo('nav', this.compiler.compile(e)), this.config.loadNavbar && de(this.router, 'nav');
              }),
              (t.prototype._renderMain = function (r, i, o) {
                var a = this;
                if ((void 0 === i && (i = {}), !r)) return Dn.call(this, r);
                this.callHook('beforeEach', r, function (e) {
                  function t() {
                    i.updatedAt && (n = Mn(n, i.updatedAt, a.config.formatUpdated)),
                      a.callHook('afterEach', n, function (e) {
                        return Dn.call(a, e);
                      });
                  }
                  var n;
                  a.isHTML
                    ? ((n = a.result = r), t(), o())
                    : Nn({compiler: a.compiler, raw: e}, function (e) {
                        (n = a.compiler.compile(e)),
                          (n = a.isRemoteUrl ? ae.sanitize(n, {ADD_TAGS: ['script']}) : n),
                          t(),
                          o();
                      });
                });
              }),
              (t.prototype._renderCover = function (e, t) {
                var n,
                  r = d('.cover');
                S(d('main'), t ? 'add' : 'remove', 'hidden'),
                  e
                    ? (S(r, 'add', 'show'),
                      (t = (n = this.coverIsHTML ? e : this.compiler.cover(e))
                        .trim()
                        .match('<p><img.*?data-origin="(.*?)"[^a]+alt="(.*?)">([^<]*?)</p>$')) &&
                        ('color' === t[2]
                          ? (r.style.background = t[1] + (t[3] || ''))
                          : ((e = t[1]),
                            S(r, 'add', 'has-mask'),
                            O(t[1]) || (e = N(this.router.getBasePath(), t[1])),
                            (r.style.backgroundImage = 'url(' + e + ')'),
                            (r.style.backgroundSize = 'cover'),
                            (r.style.backgroundPosition = 'center center')),
                        (n = n.replace(t[0], ''))),
                      this._renderTo('.cover-main', n),
                      he())
                    : S(r, 'remove', 'show');
              }),
              (t.prototype._updateRender = function () {
                var e, t, n, r;
                (e = this),
                  (t = d('.app-name-link')),
                  (n = e.config.nameLink),
                  (r = e.route.path),
                  t &&
                    (c(e.config.nameLink)
                      ? t.setAttribute('href', n)
                      : 'object' == typeof n &&
                        ((e = Object.keys(n).filter(function (e) {
                          return -1 < r.indexOf(e);
                        })[0]),
                        t.setAttribute('href', n[e])));
              }),
              (t.prototype.initRender = function () {
                var e = this.config;
                (this.compiler = new On(e, this.router)), (window.__current_docsify_compiler__ = this.compiler);
                var t,
                  n,
                  r,
                  i,
                  o,
                  a = e.el || '#app',
                  s = b('nav') || v('nav'),
                  l = b(a),
                  c = '',
                  u = g;
                l
                  ? (e.repo &&
                      (c +=
                        ((i = e.repo),
                        (a = e.cornerExternalLinkTarge),
                        i
                          ? (/\/\//.test(i) || (i = 'https://github.com/' + i),
                            '<a href="' +
                              (i = i.replace(/^git\+/, '')) +
                              '" target="' +
                              (a = a || '_blank') +
                              '" class="github-corner" aria-label="View source on Github"><svg viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>')
                          : '')),
                    e.coverpage &&
                      (c +=
                        ((r = ', 100%, 85%'),
                        '<section class="cover show" style="background: ' +
                          ('linear-gradient(to left bottom, hsl(' +
                            Math.floor(255 * Math.random()) +
                            r +
                            ') 0%,hsl(' +
                            Math.floor(255 * Math.random()) +
                            r +
                            ') 100%)') +
                          '"><div class="mask"></div><div class="cover-main">\x3c!--cover--\x3e</div></section>')),
                    e.logo &&
                      ((r = /^data:image/.test(e.logo)),
                      (t = /(?:http[s]?:)?\/\//.test(e.logo)),
                      (n = /^\./.test(e.logo)),
                      r || t || n || (e.logo = N(this.router.getBasePath(), e.logo))),
                    (c +=
                      ((n = (t = e).name ? t.name : ''),
                      '<main>' +
                        ('<button class="sidebar-toggle" aria-label="Menu"><div class="sidebar-toggle-button"><span></span><span></span><span></span></div></button><aside class="sidebar">' +
                          (t.name
                            ? '<h1 class="app-name"><a class="app-name-link" data-nosearch>' +
                              (t.logo ? '<img alt="' + n + '" src=' + t.logo + '>' : n) +
                              '</a></h1>'
                            : '') +
                          '<div class="sidebar-nav">\x3c!--sidebar--\x3e</div></aside>') +
                        '<section class="content"><article class="markdown-section" id="main">\x3c!--main--\x3e</article></section></main>')),
                    this._renderTo(l, c, !0))
                  : (this.rendered = !0),
                  e.mergeNavbar && h
                    ? (u = b('.sidebar'))
                    : (s.classList.add('app-nav'), e.repo || s.classList.add('no-badge')),
                  e.loadNavbar && w(u, s),
                  e.themeColor &&
                    (f.head.appendChild(
                      v('div', '<style>:root{--theme-color: ' + e.themeColor + ';}</style>').firstElementChild
                    ),
                    (o = e.themeColor),
                    (window.CSS && window.CSS.supports && window.CSS.supports('(--v:red)')) ||
                      ((e = k('style:not(.inserted),link')),
                      [].forEach.call(e, function (e) {
                        if ('STYLE' === e.nodeName) ue(e, o);
                        else if ('LINK' === e.nodeName) {
                          e = e.getAttribute('href');
                          if (!/\.css$/.test(e)) return;
                          ce(e).then(function (e) {
                            e = v('style', e);
                            m.appendChild(e), ue(e, o);
                          });
                        }
                      }))),
                  this._updateRender(),
                  S(g, 'ready');
              }),
              t
            );
          })(
            (function (n) {
              function e() {
                for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
                n.apply(this, e), (this.route = {});
              }
              return (
                n && (e.__proto__ = n),
                (((e.prototype = Object.create(n && n.prototype)).constructor = e).prototype.updateRender =
                  function () {
                    this.router.normalize(),
                      (this.route = this.router.parse()),
                      g.setAttribute('data-page', this.route.file);
                  }),
                (e.prototype.initRouter = function () {
                  var t = this,
                    e = this.config,
                    e = new ('history' === (e.routerMode || 'hash') && i ? q : H)(e);
                  (this.router = e),
                    this.updateRender(),
                    (U = this.route),
                    e.onchange(function (e) {
                      t.updateRender(),
                        t._updateRender(),
                        U.path !== t.route.path
                          ? (t.$fetch(u, t.$resetEvents.bind(t, e.source)), (U = t.route))
                          : t.$resetEvents(e.source);
                    });
                }),
                e
              );
            })(
              (function (e) {
                function t() {
                  e.apply(this, arguments);
                }
                return (
                  e && (t.__proto__ = e),
                  (((t.prototype = Object.create(e && e.prototype)).constructor = t).prototype.initLifecycle =
                    function () {
                      var n = this;
                      (this._hooks = {}),
                        (this._lifecycle = {}),
                        ['init', 'mounted', 'beforeEach', 'afterEach', 'doneEach', 'ready'].forEach(function (e) {
                          var t = (n._hooks[e] = []);
                          n._lifecycle[e] = function (e) {
                            return t.push(e);
                          };
                        });
                    }),
                  (t.prototype.callHook = function (e, n, r) {
                    void 0 === r && (r = u);
                    var i = this._hooks[e],
                      o = function (t) {
                        var e = i[t];
                        t >= i.length
                          ? r(n)
                          : 'function' == typeof e
                          ? 2 === e.length
                            ? e(n, function (e) {
                                (n = e), o(t + 1);
                              })
                            : ((e = e(n)), (n = void 0 === e ? n : e), o(t + 1))
                          : o(t + 1);
                      };
                    o(0);
                  }),
                  t
                );
              })(Hn)
            )
          )
        )
      ))
    );
  function Un(e, t, n) {
    return jn && jn.abort && jn.abort(), (jn = ce(e, !0, n));
  }
  (window.Docsify = {util: In, dom: t, get: ce, slugify: xn, version: '4.12.2'}),
    (window.DocsifyCompiler = On),
    (window.marked = gn),
    (window.Prism = En),
    e(function (e) {
      return new qn();
    });
})();
